我试图在mysql数据库中创建一个过程,但是我想先检查它是否存在。我知道如何对表执行此操作,但当我对存储过程使用相同的语法时,它不会编译。有人知道吗?
7ivaypg91#
如果程序确实存在,请删除它,然后重新添加:
DROP PROCEDURE IF EXISTS my_procedure; CREATE PROCEDURE my_procedure()
2skhul332#
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;
3hvapo4f3#
它不存在。我们必须编写一个模拟相同功能的存储过程。基本上,我们通过调用执行“if exists”检查的存储过程来创建存储过程。
3条答案
按热度按时间7ivaypg91#
如果程序确实存在,请删除它,然后重新添加:
2skhul332#
所以你可以:
3hvapo4f3#
它不存在。我们必须编写一个模拟相同功能的存储过程。基本上,我们通过调用执行“if exists”检查的存储过程来创建存储过程。