SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite - Solte uma tabela


Para soltar uma tabela no SQLite, use o DROP TABLE demonstração.

A execução dessa instrução remove a tabela do banco de dados. Ele é completamente removido do esquema do banco de dados e do arquivo em disco. Portanto, a tabela não pode ser recuperada. Todos os índices e gatilhos associados à tabela também são excluídos.

Uma DROP TABLE básica Declaração


Primeiro, vamos revisar as tabelas em nosso banco de dados:
sqlite> .tables
Albums   Albums1  Albums2  Artists

Temos algumas tabelas sobressalentes de nossos exercícios anteriores, então vamos deixar uma.

O código a seguir exclui o Albums1 tabela:
DROP TABLE Albums1;

Depois de executar esse código, podemos revisar nossas tabelas novamente:
sqlite> .tables
Albums   Albums2  Artists

A tabela foi removida.

Verifique se a tabela existe


Você pode usar o IF EXISTS cláusula para verificar se a tabela existe antes que o SQLite tente eliminá-la.

Isso evita erros que normalmente seriam gerados se a tabela não existisse.

Primeiro, vamos tentar eliminar uma tabela inexistente sem usando o IF EXISTS cláusula. Vamos tentar descartar o que acabamos de soltar:
DROP TABLE Album1;

Isso resulta no seguinte:
sqlite> DROP TABLE Album1;
Error: no such table: Album1

OK, então vamos tentar novamente, mas desta vez com o IF EXISTS cláusula:
DROP TABLE IF EXISTS Album1;

Resultado:
sqlite> DROP TABLE IF EXISTS Album1;
sqlite> 

Então nada aconteceu. Importante, nenhum erro foi lançado.

Solte uma tabela com chaves primárias


Então, o que acontece se tentarmos eliminar uma tabela que contém chaves primárias e houver chaves estrangeiras referenciando-as?

Vamos tentar:
DROP TABLE Artists;

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

Como esperado, falhou. Portanto, se você precisar descartar uma tabela, precisará descartar todas as tabelas associadas primeiro.

O SQLite realmente tenta excluir os dados antes de descartar uma tabela. É essa ação de exclusão que faz com que qualquer verificação de restrição de chave estrangeira ocorra.

O SQLite também elimina quaisquer índices ou gatilhos associados à tabela antes de executar a operação de exclusão (e eliminação subsequente).