• Publicidad

DBI, Select for update

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

DBI, Select for update

Notapor silva » 2011-06-10 19:40 @861

Hola, estoy usando el módulo DBI, y quisiera hacer un select de un registro y mantenerlo lockeado mientras realizo otras operaciones, para luego ejecutarle un update al mismo.

¿Cómo puedo hacerlo usando DBI?

Gracias.
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Publicidad

Re: DBI, Select for update

Notapor explorer » 2011-06-11 02:01 @125

Yo creo que DBI no tiene esa opción. Al menos, en ninguna parte de la documentación aparece la palabra locked (bueno, sí, aparece una vez, pero es parte de un comentario, no de un comando).

En cambio, sí que se puede dar la orden de bloqueo al motor de la base de datos.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $dbh->do("LOCK TABLES foo WRITE, bar READ");
  2. $sth->prepare("SELECT x,y,z FROM bar");
  3. $sth2->prepare("INSERT INTO foo SET a = ?");
  4. while (@ary = $sth->fetchrow_array()) {
  5.     $sth2->$execute($ary[0]);
  6.     }
  7. $sth2->finish();
  8. $sth->finish();
  9. $dbh->do("UNLOCK TABLES");
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
(Ejemplo extraído desde aquí)

En este ejemplo, se indica que se debe bloquear la tabla bar para solo lectura, y la tabla foo para lectura y escritura. Mientras estén bloqueadas, solo nosotros podremos realizar esas operaciones.

De todas maneras, me parece que lo que quieres hacer es una transacción.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados