Resumo : neste tutorial, você aprenderá como remover uma tabela do banco de dados usando a DROP TABLE
instrução SQLite.
DROP TABLE
Introdução à instrução SQLite
Para remover uma tabela em um banco de dados, você usa DROP TABLE
a instrução SQLite. A afirmação é simples da seguinte forma:
DROP TABLE [IF EXISTS] [schema_name.]table_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe, você especifica o nome da tabela que deseja remover após as DROP TABLE
palavras-chave.
SQLite permite eliminar apenas uma tabela por vez. Para remover diversas tabelas, você precisa emitir diversas DROP TABLE
instruções.
Se você remover uma tabela inexistente, o SQLite emitirá um erro. Se você usar IF EXISTS
a opção, o SQLite removerá a tabela somente se ela existir, caso contrário, ele simplesmente ignora a instrução e não faz nada.
Se você deseja remover uma tabela em um banco de dados específico, use [schema_name.]
explicitamente.
Caso a tabela possua objetos dependentes como gatilhos e índices , a DROP TABLE
instrução também remove todos os objetos dependentes.
A DROP TABLE
instrução executa uma DELETE
instrução implícita antes de eliminar a tabela. No entanto, a DROP TABLE
instrução remove os gatilhos associados à tabela antes de executar a DELETE
instrução implícita, portanto, os gatilhos de exclusão não serão acionados.
Se as restrições de chave estrangeira estiverem habilitadas e você executar a DROP TABLE
instrução, antes do SQLite executar a DELETE
instrução implícita, ele realizará a verificação das restrições de chave estrangeira. Se ocorrer uma violação de restrição de chave estrangeira, o SQLite emitirá uma mensagem de erro e não eliminará a tabela.
Observe que a DROP TABLE
instrução exclui completamente a tabela do banco de dados e o arquivo no disco. Você não poderá desfazer ou recuperar-se desta ação. Portanto, você deve executar a DROP TABLE
declaração com cautela extra.
DROP TABLE
Exemplos de instruções SQLite
Para efeito de demonstração, criaremos duas tabelas: people
e addresses
. Cada pessoa tem um endereço. E um endereço pode ser compartilhado por várias pessoas.
Primeiro, crie as tabelas:
CREATE TABLE IF NOT EXISTS people (
person_id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
address_id INTEGER,
FOREIGN KEY (address_id)
REFERENCES addresses (address_id)
);
CREATE TABLE IF NOT EXISTS addresses (
address_id INTEGER PRIMARY KEY,
house_no TEXT,
street TEXT,
city TEXT,
postal_code TEXT,
country TEXT
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira um endereço e uma pessoa nas tabelas addresses
e people
.
INSERT INTO addresses ( house_no, street, city, postal_code, country )
VALUES ( '3960', 'North 1st Street', 'San Jose ', '95134', 'USA ' );
INSERT INTO people ( first_name, last_name, address_id )
VALUES ('John', 'Doe', 1);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, use a DROP TABLE
instrução para remover a addresses
tabela.
DROP TABLE addresses;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
SQLite emitiu uma mensagem de erro:
constraint failed
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Porque esta ação viola a restrição de chave estrangeira.
Para remover a addresses
tabela, você deve:
- Desative restrições de chave estrangeira.
- Largue a
addresses
mesa. - Atualize na
address_id
tabelapeople
paraNULL
valores. - Habilite as restrições de chave estrangeira.
Veja as seguintes afirmações:
PRAGMA foreign_keys = OFF;
DROP TABLE addresses;
UPDATE people
SET address_id = NULL;
PRAGMA foreign_keys = ON;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A addresses
tabela é removida e os valores da address_id
coluna são atualizados para NULL
valores.
Neste tutorial, você aprendeu como usar DROP TABLE
a instrução SQLite para remover completamente a tabela de um banco de dados.