一、常用
查看全部存储过程:
show procedure status;
查看某个数据库全部存储过程:
show procedure status where db='db_name';
查看全部函数
show function status;
查看某个数据库全部函数
show function status where db='db_name';
查看某个存储过程详情:
show create procedure pro_name;
或
select `name` from mysql.proc where db = 'xx' and `type` = 'PROCEDURE'
二、查看存储过程和函数的状态
用SHOW STATUS语句可以查看存储过程和函数的状态,其基本的语法结构如下:
SHOW { PROCEDURE | FUNCTION } STATUS [ LIKE 'pattern' ]
SHOW STATUS 语句是 MySQL 的一个扩展。它返回子程序的特征,如数据库、名字、类型、创建者及创建和修改日期。如果没有指定样式,
根据使用的语句,所有的存储程序或存储函数的信息都会被列出。PROCEDURE 和 FUNCTION 分别表示查看存储过程和函数;LIKE 语句
表示匹配存储过程或函数的名称。
例:
SHOW PROCEDURE STATUS LIKE 'C%'\G;
三、查看存储过程和函数的定义
除了SHOW STATUS 之外,还可以使用 SHOW CREATE 语句查看存储过程和函数的状态。
SHOW CREATE { PROCEDURE | FUNCTION } sp_name
SHOW CREATE 语句是 MySQL 的一个扩展,类似于 SHOW CREATE TABLE, 它返回一个可用来重新创建已命名子程序的确切字符串。
PROCEDURE 和 FUNCTION 分别表示查看存储过程和函数; LIKE 语句表示匹配存储过程或函数的名称。
SHOW CREATE 语句示例。代码如下:
SHOW CREATE FUNCTION test_db.CountProc2 \G
四、查看存储过程和函数的信息
在MySQL中,存储过程和函数的信息存储在 information_schema 数据库下的 Routines 表中,可以通过查询该表的记录来查询存储
过程和函数的信息,其基本的语法形式如下:
SELECT * FROM information_schema.Routines
WHERE ROUTINE_NAME = 'sp_name' ;
其中,ROUTINE_NAME 字段中存储的是存储过程和函数的名称; sp_name 参数表示存储过程或函数的名称。
【例】 从 Routines 表中查询名为 CountProc2 的存储函数的信息。代码如下:
SELECT * FROM information_schema.Routines
-> WHERE ROUTINE_NAME = 'CountProc2' AND ROUTINE_TYPE = 'FUNCTION' \G
information_schema 数据库中的 Routines 表中,存储了所有存储过程和函数的定义。使用 SELECT 语句查询 Routines 表中的存
储过程和函数的定义时,一定要使用 ROUTNE_NAME 字段指定存储过程或函数的名称。否则,将查询出所有的存储过程或函数的定义。如果
存储过程和存储函数名称相同,则需要要同时指定 ROUTINE_TYPE 字段表明查询的是哪种类型的存储程序。