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

MySQL – Wie lösche ich eine Tabelle, wenn sie in der Datenbank existiert?

In diesem Beitrag SQL Server – 2016 – T-SQL Enhancement „Drop if Exists“-Klausel haben wir die neue Funktion gesehen, die in SQL Server Version 2016 eingeführt wurde. Einer meiner Freunde kürzlich hat mich gefragt, wie man eine Tabelle löschen kann, falls vorhanden in MySQL-Datenbank? Es war nicht überraschend zu sehen, dass nicht viele Leute von der Existenz dieser Funktion wissen. MySQL hat diese Funktion bereits seit einiger Zeit und wenn Sie MySQL-DBA sind, werden Sie es vielleicht interessant finden, dass SQL Server diese Funktion gerade erst eingeführt hat.

Sehen wir uns dieses Beispiel jetzt in Aktion an. Zuerst erstellen wir eine Beispieltabelle.

CREATE TABLE test(id INT,name VARCHAR(100));

Wenn wir über die Tabelle fallen müssen, können wir das folgende Skript ausführen und es fallen lassen.

DROP TABLE IF EXISTS test;

Das obige Skript löscht die Tabelle mit dem Namen test, falls vorhanden, andernfalls zeigt es eine Warnung und keinen Fehler an. Dies ist sehr wichtig, um zu verstehen, dass wir die Warnung in unserem Code leicht umgehen können, da kein Fehler angezeigt wird. Dies ist hilfreich, wenn Sie sich nicht sicher sind, ob die Tabelle im Voraus existiert.

Nicht nur Tabellen, sondern MySQL bietet ähnliche Funktionen auch für gespeicherte Prozeduren. Sehen wir uns dazu ein kurzes Beispiel an.

Hier ist ein Skript, mit dem Sie gespeicherte Prozeduren erstellen können.

CREATE PROCEDURE test_proc
AS
BEGIN
SELECT 1 AS number;
END;

Nachdem Sie das obige Verfahren erstellt haben, können Sie es mit dem folgenden Skript löschen.

DROP PROCEDURE IF EXISTS test_proc;

Denken Sie daran, dass genau wie bei table die gespeicherte Prozedur gelöscht wird, falls eine vorhanden ist, andernfalls wird nur eine Warnung zurückgegeben. Es ist wirklich interessant zu sehen, dass MySQL diese Funktion bereits seit einiger Zeit hat, während SQL Server diese Funktion erst in diesem Jahr eingeführt hat.