如何在MySQL中通过注释筛选存储过程名称?
在MySQL中通过注释筛选存储过程名称的方法
嘿,这个需求我太熟悉了!在MySQL里,所有存储过程(包括函数)的元数据都存在information_schema.ROUTINES这个系统表中,我们可以直接查询它来实现按注释过滤存储过程的需求。
基础查询:只获取存储过程名称
如果你的目标只是拿到匹配注释的存储过程名称,可以用这条SQL:
SELECT ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' -- 只筛选存储过程,排除函数 AND ROUTINE_COMMENT LIKE '%something%'; -- 替换成你要搜索的注释关键词
扩展查询:获取更多存储过程信息
要是你还想查看存储过程的注释内容、定义代码或者创建时间,可以扩展查询字段:
SELECT ROUTINE_NAME, ROUTINE_COMMENT, ROUTINE_DEFINITION, CREATED FROM information_schema.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_COMMENT LIKE '%something%';
注意事项
- 一定要加上
ROUTINE_TYPE = 'PROCEDURE'这个条件,不然会把函数(FUNCTION)也一起查出来,混淆结果。 - 执行查询的用户需要拥有
SELECT权限访问information_schema.ROUTINES表,普通账号如果没有权限的话,得找管理员授权才行。
内容的提问来源于stack exchange,提问作者godot
相关产品推荐
相关产品推荐

