sql >> Base de Datos >  >> RDS >> SQLite

SQLite - Soltar una tabla

Para colocar una tabla en SQLite, use DROP TABLE declaración.

La ejecución de esta instrucción elimina la tabla de la base de datos. Se elimina por completo del esquema de la base de datos y del archivo del disco. Por lo tanto, la tabla no se puede recuperar. Todos los índices y disparadores asociados con la tabla también se eliminan.

Una DROP TABLE básica Declaración

Primero, revisemos las tablas en nuestra base de datos:

sqlite> .tables
Albums   Albums1  Albums2  Artists

Tenemos un par de tablas de repuesto de nuestros ejercicios anteriores, así que dejemos una.

El siguiente código elimina Albums1 tabla:

DROP TABLE Albums1;

Después de ejecutar ese código, podemos revisar nuestras tablas nuevamente:

sqlite> .tables
Albums   Albums2  Artists

La tabla ha sido eliminada.

Comprobar si la tabla existe

Puedes usar el IF EXISTS cláusula para verificar si la tabla existe antes de que SQLite intente eliminarla.

Hacer esto evita cualquier error que normalmente se generaría si la tabla no existiera.

Primero, intentemos eliminar una tabla inexistente sin usando el IF EXISTS cláusula. Intentemos eliminar el que acabamos de eliminar:

DROP TABLE Album1;

Esto da como resultado lo siguiente:

sqlite> DROP TABLE Album1;
Error: no such table: Album1

Bien, intentémoslo de nuevo, pero esta vez con IF EXISTS cláusula:

DROP TABLE IF EXISTS Album1;

Resultado:

sqlite> DROP TABLE IF EXISTS Album1;
sqlite> 

Así que no pasó nada. Es importante destacar que no se arrojó ningún error.

Soltar una tabla con claves principales

Entonces, ¿qué sucede si intentamos descartar una tabla que contiene claves principales y hay claves externas que hacen referencia a ellas?

Intentémoslo:

DROP TABLE Artists;

Resultado:

sqlite> DROP TABLE Artists;
Error: FOREIGN KEY constraint failed

Como era de esperar, fracasó. Entonces, si necesita eliminar una tabla, primero deberá eliminar las tablas asociadas.

SQLite en realidad intenta eliminar los datos antes de eliminar una tabla. Es esta acción de eliminación la que hace que se realicen comprobaciones de restricciones de clave externa.

SQLite también descarta cualquier índice o disparador asociado con la tabla antes de realizar la operación de eliminación (y posterior eliminación).