Resumo : neste tutorial, você aprenderá como eliminar uma coluna de uma tabela usando a DROP COLUMN
instrução MySQL.
DROP COLUMN
Introdução à instrução MySQL
Em algumas situações, você deseja remover uma ou mais colunas de uma tabela. Nesses casos, você usa a seguinte ALTER TABLE DROP COLUMN
declaração:
ALTER TABLE table_name
DROP COLUMN column_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome da tabela que contém a coluna que você deseja eliminar após as
ALTER TABLE
palavras-chave. - Segundo, especifique o nome da coluna que você deseja eliminar na
DROP COLUMN
cláusula.
Observe que a COLUMN
palavra-chave palavra-chave na DROP COLUMN
cláusula é opcional, portanto você pode usar a instrução mais curta da seguinte forma:
ALTER TABLE table_name
DROP column_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para remover várias colunas de uma tabela usando uma única ALTER TABLE
instrução, use a seguinte sintaxe:
ALTER TABLE table_name
DROP COLUMN column_name_1,
DROP COLUMN column_name_2,
...;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Existem alguns pontos importantes que você deve lembrar antes de remover uma coluna de uma tabela:
- A remoção de uma coluna de uma tabela torna inválidos todos os objetos de banco de dados, como procedimentos armazenados , visualizações e gatilhos que fazem referência à coluna eliminada. Por exemplo, você pode ter um procedimento armazenado que se refere a uma coluna. Quando você remove a coluna, o procedimento armazenado se torna inválido. Para corrigir isso, você precisa alterar manualmente o código do procedimento armazenado.
- O código de outras aplicações que dependem da coluna eliminada também deve ser alterado, o que exige tempo e esforço.
- Eliminar uma coluna de uma tabela grande pode afetar o desempenho do banco de dados durante o tempo de remoção.
DROP COLUMN
Exemplos de MySQL
Primeiro, crie uma tabela com o nome posts
da demonstração.
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
excerpt VARCHAR(400),
content TEXT,
created_at DATETIME,
updated_at DATETIME
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A seguir, use a ALTER TABLE DROP COLUMN
instrução para remover a excerpt
coluna:
ALTER TABLE posts
DROP COLUMN excerpt;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Em seguida, visualize a estrutura da tabela usando a DESCRIBE
instrução:
DESCRIBE posts;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Depois disso, use a ALTER TABLE DROP COLUMN
instrução para eliminar as colunas created_at
e updated_at
:
ALTER TABLE posts
DROP COLUMN created_at,
DROP COLUMN updated_at;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por fim, use a DESCRIBE
instrução para verificar a remoção:
DESCRIBE posts;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL elimina uma coluna que é um exemplo de chave estrangeira
Se você remover a coluna que é uma chave estrangeira , o MySQL emitirá um erro. Considere o seguinte exemplo.
Primeiro, crie uma tabela chamada categories
:
CREATE TABLE categories (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, adicione uma coluna nomeada category_id
à posts
tabela.
ALTER TABLE posts
ADD COLUMN category_id INT NOT NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, torne a category_id
coluna uma coluna de chave estrangeira que faz referência à id
coluna da categories
tabela.
ALTER TABLE posts
ADD CONSTRAINT fk_cat
FOREIGN KEY (category_id)
REFERENCES categories(id);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quarto, retire a category_id
coluna da posts
tabela.
ALTER TABLE posts
DROP COLUMN category_id;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL emitiu uma mensagem de erro:
Error Code: 1553. Cannot drop index 'fk_cat': needed in a foreign key constraint
Linguagem de código: JavaScript ( javascript )
Para evitar esse erro, você deve remover a restrição de chave estrangeira antes de eliminar a coluna.
Neste tutorial, mostramos como usar DROP COLUMN
a instrução MySQL para remover uma ou mais colunas de uma tabela.