要求:Maven配置文件应该有一个目录路径,在运行我的maven配置文件后,应该在我的数据库中创建该目录中的所有sql文件(存储过程)。
注意:目录中的sql文件有可能增加,所以如果添加新文件,我应该只运行该文件,而不是运行所有文件。
问题:无法使用IF NOT EXISTS检查过程是否存在,当我在创建存储过程之前将其添加到我的sql文件中时,它会给我语法错误。
我尝试使用
IF NOT EXISTS(SELECT * FROM mysql.proc WHERE name='procedure_1001') THEN
BEGIN
CREATE DEFINER=`root`@`localhost` PROCEDURE `procedure_1001`()
BEGIN
// logic
END
END
END IF;
答案 0 :(得分:0)
检查ROUTINES
表,如下所示:
SELECT count(*) > 0
into @myvar
FROM INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_TYPE='PROCEDURE'
AND ROUTINE_SCHEMA='dbname'
AND ROUTINE_NAME = 'procedure_1001'
;
然后再使用@myvar
。如果为1,则运行该过程。