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