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