SQLite hace todo el bloqueo necesario para implementar el esquema de transacción que describen sus instrucciones SQL. En particular, si no describe ninguno, obtendrá el comportamiento de autocompromiso, con un bloqueo mantenido durante la vigencia de cada enunciado y luego descartado a medida que finaliza la declaración. Si necesita transacciones más largas (a menudo verdaderas), las solicita explícitamente con BEGIN TRANSACTION
(a menudo acortadas a BEGIN
) y finaliza con COMMIT TRANSACTION
(o ROLLBACK TRANSACTION
). El manejo de las transacciones está envuelto para usted por su interfaz de lenguaje (ya que hace que sea mucho más fácil acertar, combinando la vida de la transacción con un bloque de código o llamada de método) pero en el nivel base, se reduce a BEGIN
/COMMIT
/ROLLBACK
.
En resumen, tiene transacciones. Los bloqueos se usan para implementar transacciones. No tiene bloqueos crudos (lo cual es bueno, son más difíciles de obtener de lo que se podría pensar a primera vista).