uso tablas guia ejemplos creacion consultas comando sqlite shell sqlite3 backup database-backups

guia - tablas en sqlite



Comando de shell sqlite3 ''.backup'' y transacción (1)

El método de copia de seguridad sqlite3 no bloquea la base de datos. Sugeriría utilizar la siguiente solución alternativa si desea bloquear la base de datos:

  • Comience una transacción (bloqueo compartido)
  • Al usar cualquier INSERT , la base de datos obtiene un bloqueo reservado. Sin embargo, esta INSERT puede estar vacía.
  • Respalda la base de datos.
  • Termine la transacción usando ROLLBACK o COMMIT .

Código:

BEGIN; INSERT INTO <anytable> SELECT * FROM <anytable> WHERE 1=0; .backup <database> <file> ROLLBACK;

Una forma menos hacky sería si está utilizando una tabla llamada ''copia de seguridad'' y está insertando una fila (fecha, ..) para cada copia (si esta información es relevante para usted).

Tengo una base de datos sqlite en mi host local (Win NT) y quiero hacer una copia de seguridad. Quiero usar el comando de shell ''.backup'' para lograr esta tarea. Pero parece que puedo insertar nuevas filas en la base de datos durante el proceso de copia de seguridad.

¿El comando de shell ''.backup'' inicia una nueva transacción exclusiva en mi base de datos?

Pensé que cuando ejecuto el comando ''.backup'' shell, bloquea mi base de datos.