怎么说创建过程,如果在MySQL中不存在

问题描述 投票:21回答:3

我想编写一个脚本来创建MySQL数据库的操作,但是我要检查它是否exsit第一。

我知道该怎么做了一个表,但是当我使用存储过程的语法相同,它不会编译。

有谁知道?谢谢

mysql stored-procedures exists
3个回答
25
投票

刚落的过程,如果它确实存在,然后重新添加它:

DROP PROCEDURE IF EXISTS my_procedure;
CREATE PROCEDURE my_procedure()

9
投票
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;

3
投票

它不存在。我们必须写模仿相同的功能的存储过程。基本上,我们创建通过调用存储过程,做了“是否存在”检查存储过程。

© www.soinside.com 2019 - 2024. All rights reserved.