Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL (5.7) supprime les procédures stockées via mysql.proc

La delete directe depuis le procs table ne semble pas prendre un effet immédiat dans la session MySQL en cours.

Le flush L'instruction est utilisée dans MySQL pour que le serveur recharge des éléments (en modifiant les privilèges directement via la mise à jour/la suppression et les privilèges flush privileges est probablement la meilleure analogie). Cependant, je n'ai trouvé aucune version de flush privileges cela affecterait les procs stockés en fonction de la documentation. Donc, je ne pense pas qu'il y ait un moyen de rendre la suppression de la procédure stockée finale dans la session MySQL en cours.

Le vrai danger avec votre approche de suppression directe est qu'elle repose sur une fonctionnalité non documentée de MySQL. Cette fonctionnalité peut changer sans préavis dans une future version de MySQL, rendant une mise à jour impossible. De plus, sans déboguer MySQL lui-même, il est très difficile de dire si votre approche a des effets secondaires imprévus.

Pour ces raisons, je ne recommanderais pas d'utiliser cette approche dans un code de production. S'il s'agit d'un exercice ponctuel, vous pouvez vous en tirer.