2012-06-08 44 views
5

No encontré explícitos comandos de bloqueo sqlite antes de insertar o actualizar filas en la tabla. ¿Tiene sqlite manejar el mecanismo de bloqueo por sí mismo? El módulo de buscapersonas descrito en http://sqlite.org/lockingv3.html maneja el mecanismo de bloqueo. Pero no estoy seguro de si hay algún comando que el usuario pueda usar para bloquear explícitamente las tablas. Por favor aconséjame.Mecanismo de bloqueo explícito en SQLite

Gracias

Respuesta

12

Por lo que yo sé que hay comandos sin sqlite dedicada al control de bloqueo. Sin embargo, puede obtener sqlite para bloquear la base de datos usando create transaction. Por ejemplo:

BEGIN IMMEDIATE TRANSACTION; 
... 
COMMIT TRANSACTION; 

BEGIN EXCLUSIVE TRANSACTION; 
... 
COMMIT TRANSACTION; 

Si usted lee la documentación he vinculado usted debe tener una mejor idea de la diferencia entre IMMEDIATE & EXCLUSIVE transacciones.

Vale la pena señalar que los bloqueos en sqlite se aplican a toda la base de datos y no solo a tablas individuales, a diferencia de la declaración LOCK TABLE en otras bases de datos sql.

8

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).

Cuestiones relacionadas