Tabela de eliminação SQLite

Resumo : neste tutorial, você aprenderá como remover uma tabela do banco de dados usando a DROP TABLEinstrução SQLite.

DROP TABLEIntrodução à instrução SQLite

Para remover uma tabela em um banco de dados, você usa DROP TABLEa 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 TABLEpalavras-chave.

SQLite permite eliminar apenas uma tabela por vez. Para remover diversas tabelas, você precisa emitir diversas DROP TABLEinstruções.

Se você remover uma tabela inexistente, o SQLite emitirá um erro. Se você usar IF EXISTSa 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 TABLEinstrução também remove todos os objetos dependentes.

A DROP TABLEinstrução executa uma  DELETEinstrução implícita antes de eliminar a tabela. No entanto, a DROP TABLEinstrução remove os gatilhos associados à tabela antes de executar a DELETEinstruçã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 TABLEinstrução, antes do SQLite executar a DELETEinstruçã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 TABLEinstruçã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 TABLEdeclaração com cautela extra.

DROP TABLEExemplos de instruções SQLite

Para efeito de demonstração, criaremos duas tabelas: peoplee 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 )

Tente

Exemplo de SQLite DROP TABLE

Segundo, insira um endereço e uma pessoa nas tabelas addressese 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 )

Tente

Terceiro, use a DROP TABLEinstrução para remover a addressestabela.

DROP TABLE addresses;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite emitiu uma mensagem de erro:

constraint failedLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Porque esta ação viola a restrição de chave estrangeira.

Para remover a addressestabela, você deve:

  1. Desative restrições de chave estrangeira.
  2. Largue a addressesmesa.
  3. Atualize na address_idtabela peoplepara NULLvalores.
  4. 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 )

Tente

A addressestabela é removida e os valores da address_idcoluna são atualizados para NULLvalores.

Neste tutorial, você aprendeu como usar DROP TABLEa instrução SQLite para remover completamente a tabela de um banco de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *