Mysql: 查找所有引用特定表的存储过程

5

我想检查在mysql中引用特定表格的所有存储过程和函数。我找到了一个查询,我认为它是用于在sql server中进行相同检查的:

SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%tablename%'

但在mysql中,它显示“表sys.procedures不存在”

哦,等一下。这是针对 MSSQL 的,但你正在处理 MySQL? - Raptor
是的,我想在MySQL中查询。 - Sahil Sharma
可能是重复的问题,参考MySQL命令行下存储过程/函数列表 - Raptor
2个回答

10
select * from information_schema.ROUTINES where ROUTINE_DEFINITION like '%tableName%'; 

4
你需要查询 Mysql.proc 表,这里 是文档:

mysql.proc 表包含存储过程和存储函数的信息。它包含与 INFORMATION SCHEMA.ROUTINES 表中存储的信息类似的信息。

你的查询语句应该是:
SELECT *
FROM Mysql.proc
WHERE type = 'PROCEDURE'
AND body LIKE '%tablename%';

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