Fra*_*ank 23 mysql stored-procedures exists
我正在尝试编写一个脚本来在MySQL数据库中创建一个过程,但我想先检查它是否存在.
我知道如何为表执行此操作,但是当我对存储过程使用相同的语法时,它不会编译.
有人知道吗?谢谢
Cor*_*ein 27
只要删除该过程(如果存在),然后重新添加它:
DROP PROCEDURE IF EXISTS my_procedure;
CREATE PROCEDURE my_procedure()
Run Code Online (Sandbox Code Playgroud)
Ben*_*ish 10
SELECT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name');
Run Code Online (Sandbox Code Playgroud)
所以你可以这样做:
IF NOT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name') THEN
....
END IF;
Run Code Online (Sandbox Code Playgroud)