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.
Using perl Syntax Highlighting
$dbh->do("LOCK TABLES foo WRITE, bar READ");
$sth->prepare("SELECT x,y,z FROM bar");
$sth2->prepare("INSERT INTO foo SET a = ?");
while (@ary = $sth->fetchrow_array()) {
$sth2->$execute($ary[0]);
}
$sth2->finish();
$sth->finish();
$dbh->do("UNLOCK TABLES");
Coloreado en 0.002 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.