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

MySQL (5.7) löscht gespeicherte Prozeduren über mysql.proc

Das direkte delete aus den procs Tabelle scheint in der aktuellen MySQL-Sitzung keine sofortige Auswirkung zu haben.

Der flush -Anweisung wird in MySQL verwendet, um den Server dazu zu bringen, Dinge neu zu laden (Änderung der Berechtigungen direkt über Aktualisieren / Löschen und die flush privileges ist wahrscheinlich die beste Analogie). Allerdings konnte ich keine Versionen von flush finden Dies würde sich auf die gespeicherten Prozesse basierend auf der Dokumentation auswirken. Daher glaube ich nicht, dass es eine Möglichkeit gibt, das Löschen der gespeicherten Prozedur in der aktuellen MySQL-Sitzung endgültig zu machen.

Die wirkliche Gefahr bei Ihrem direkten Löschansatz besteht darin, dass er sich auf eine nicht dokumentierte Funktion von MySQL stützt. Diese Funktion kann sich in einer zukünftigen Version von MySQL ohne Vorankündigung ändern, wodurch ein Upgrade unmöglich wird. Außerdem ist es sehr schwierig zu sagen, ob Ihr Ansatz unbeabsichtigte Nebenwirkungen hat, ohne MySQL selbst zu debuggen.

Aus diesen Gründen würde ich nicht empfehlen, diesen Ansatz in einem Produktionscode zu verwenden. Wenn es sich um eine einmalige Übung handelt, können Sie damit durchkommen.