COLUNA DE QUEDA MySQL

Resumo : neste tutorial, você aprenderá como eliminar uma coluna de uma tabela usando a DROP COLUMNinstrução MySQL.

DROP COLUMNIntroduçã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 COLUMNdeclaraçã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 TABLEpalavras-chave.
  • Segundo, especifique o nome da coluna que você deseja eliminar na DROP COLUMNcláusula.

Observe que a COLUMNpalavra-chave palavra-chave na DROP COLUMNclá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 TABLEinstruçã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 COLUMNExemplos de MySQL

Primeiro,  crie uma tabela com o nome postsda 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 COLUMNinstrução para remover a excerptcoluna:

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 DESCRIBEinstrução:

DESCRIBE posts;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Exemplo de DROP COLUMN do MySQL

Depois disso, use a ALTER TABLE DROP COLUMNinstrução para eliminar as colunas created_ate 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 DESCRIBEinstruçã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à poststabela.

ALTER TABLE posts 
ADD COLUMN category_id INT NOT NULL;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, torne a category_idcoluna uma coluna de chave estrangeira que faz referência à idcoluna da categoriestabela.

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_idcoluna da poststabela.

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 constraintLinguagem 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 COLUMNa instrução MySQL para remover uma ou mais colunas de uma tabela.

Deixe um comentário

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