Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di ALTER per eliminare una colonna se esiste in MySQL

Per MySQL, non ce n'è: Richiesta di funzionalità MySQL .

Consentire questo è probabilmente una pessima idea, comunque:IF EXISTS indica che stai eseguendo operazioni distruttive su un database con (per te) struttura sconosciuta. Potrebbero esserci situazioni in cui ciò è accettabile per il lavoro locale rapido e sporco, ma se sei tentato di eseguire una tale istruzione rispetto ai dati di produzione (in una migrazione ecc.), stai giocando con il fuoco.

Ma se insisti, non è difficile semplicemente verificarne l'esistenza prima nel client o cogliere l'errore.

MariaDB supporta anche quanto segue a partire da 10.0.2:

DROP [COLUMN] [IF EXISTS] col_name 

io. e.

ALTER TABLE my_table DROP IF EXISTS my_column;

Ma è probabilmente una cattiva idea fare affidamento su una funzionalità non standard supportata solo da uno dei numerosi fork di MySQL.