Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando ALTER para descartar uma coluna se ela existir no MySQL


Para MySQL, não há: Solicitação de recurso MySQL .

Permitir isso é sem dúvida uma péssima ideia, de qualquer maneira:IF EXISTS indica que você está executando operações destrutivas em um banco de dados com (para você) estrutura desconhecida. Pode haver situações em que isso seja aceitável para trabalho local rápido e sujo, mas se você estiver tentado a executar tal instrução em relação aos dados de produção (em uma migração etc.), estará brincando com fogo.

Mas se você insistir, não é difícil simplesmente verificar a existência primeiro no cliente ou detectar o erro.

O MariaDB também suporta o seguinte começando com 10.0.2:
DROP [COLUMN] [IF EXISTS] col_name 

eu. e.
ALTER TABLE my_table DROP IF EXISTS my_column;

Mas é sem dúvida uma má ideia confiar em um recurso não padrão suportado por apenas um dos vários forks do MySQL.