J'essaie d'écrire un script pour créer une procédure dans la base de données MySQL, mais je veux vérifier si elle existe en premier.
Je sais comment le faire pour une table, mais lorsque j'utilise la même syntaxe pour la procédure stockée, elle ne se compile pas.
Est-ce que quelqu'un sait? Merci
Supprimez simplement la procédure si elle existe, puis ajoutez-la à nouveau:
DROP PROCEDURE IF EXISTS my_procedure;
CREATE PROCEDURE my_procedure()
SELECT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name');
Vous pourriez donc faire:
IF NOT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name') THEN
....
END IF;
Ça n'existe pas. Nous avons dû écrire une procédure stockée qui imite la même fonctionnalité. Fondamentalement, nous créons des procédures stockées en appelant une procédure stockée qui effectue la vérification "si existe".