如何在mysql5中删除数据库的所有存储过程

4
我想从我的MySQL数据库中删除所有的存储过程。我应该如何编写查询语句?

2
https://dev59.com/u3A75IYBdhLWcg3w7tx6 - gmaliar
2个回答

10

试试这个

USE sbnmaster;

SELECT CONCAT('DROP PROCEDURE IF EXISTS ', SPECIFIC_NAME, ';') AS StorePrecedure 
FROM information_schema.ROUTINES R 
WHERE R.ROUTINE_TYPE = 'PROCEDURE' 
AND R.ROUTINE_SCHEMA = DATABASE(); 

我不得不在concat中添加一个分号,以便它能够与多个procs一起工作:SELECT CONCAT("DROP PROCEDURE IF EXISTS ",SPECIFIC_NAME,";") AS StorePrecedure - BenR

7

我不确定它是否正确,但似乎它能够工作 -

DELETE FROM mysql.proc WHERE db = 'sbnmaster' AND type = 'PROCEDURE';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接