Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von ALTER zum Löschen einer Spalte, wenn sie in MySQL vorhanden ist

Für MySQL gibt es keine: MySQL-Funktionsanfrage .

Dies zuzulassen ist sowieso eine wirklich schlechte Idee:IF EXISTS zeigt an, dass Sie destruktive Operationen auf einer Datenbank mit (für Sie) unbekannter Struktur ausführen. Es kann Situationen geben, in denen dies für schnelle und schmutzige lokale Arbeiten akzeptabel ist, aber wenn Sie versucht sind, eine solche Aussage gegen Produktionsdaten (bei einer Migration usw.) zu verwenden, spielen Sie mit dem Feuer.

Aber wenn Sie darauf bestehen, ist es nicht schwierig, einfach zuerst im Client auf Existenz zu prüfen oder den Fehler abzufangen.

MariaDB unterstützt ab 10.0.2 auch Folgendes:

DROP [COLUMN] [IF EXISTS] col_name 

ich. e.

ALTER TABLE my_table DROP IF EXISTS my_column;

Aber es ist wohl eine schlechte Idee, sich auf eine nicht standardmäßige Funktion zu verlassen, die nur von einer von mehreren Abzweigungen von MySQL unterstützt wird.