MySQLデータベースにプロシージャを作成するスクリプトを記述しようとしていますが、それが最初に存在するかどうかを確認したいと思います。
テーブルでそれを行う方法を知っていますが、ストアドプロシージャに同じ構文を使用すると、コンパイルできません。
誰か知っていますか?ありがとう
プロシージャが存在する場合は削除して、再度追加します。
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');
だからあなたはできる:
IF NOT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name') THEN
....
END IF;
それは存在しません。同じ機能を模倣するストアドプロシージャを作成する必要がありました。基本的に、「存在する場合」チェックを行うストアドプロシージャを呼び出すことによって、ストアドプロシージャを作成します。