51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

MySQL8第66期-存储过程和函数之查看

欢迎将文章分享到朋友圈

MySQL存储了存储过程和函数的状态信息,用户可以使用SHOW STATUS语句或SHOW CREATE语句来查看,也可直接从系统的information_schema数据库中查询。 0 1

使用SHOW STATUS语句查看存储过程和函数的状态

SHOW STATUS语句可以查看存储过程和函数的状态,其基本语法结构如下:

SHOW {PROCEDURE|FUNCTION} STATUS [LIKE 'pattern']

这个语句是一个MySQL的扩展,返回子程序的特征,如数据库、名字、类型、创建者及创建和修改日期。如果没有指定样式,那么根据使用的语句,所有存储程序或存储函数的信息都会被列出。其中,PROCEDURE和FUNCTION分别表示查看存储过程和函数;LIKE语句表示匹配存储过程和函数的名称。

SHOW STATUS语句示例,代码如下:

SHOW PROCEDURE STATUS LIKE 'C%'\G

代码执行如下:

该语句获取数据库中所有名称以字母'C'开头的存储过程的信息。通过上面的语句可以看到:一共有三个存储函数,test_db数据库中,存储函数有两个,名称为CountProc、CountProc1,同时展示了一些其他相关信息。 0 2

使用SHOW CREATE语句查看存储过程和函数的定义

除了SHOW STATUS之外,MySQL还可以使用SHOW CREATE语句查看存储过程和函数的状态。

SHOW CREATE {PROCEDURE|FUNCTION} sp_name

这个语句是MySQL的一个扩展。类似于SHOW CREATE TABLE,它返回一个可用来重新创建已命名子程序的确切字符串。PROCEDURE和FUNCTION分别表示查看存储过程和函数;sp_name参数表示匹配存储过程或函数的名称。

SHOW CREATE语句示例,代码如下:

SHOW CREATE FUNCTION test_db.CountProc2\G

执行上面的语句可以得到存储函数的名称为CountProc2,sql_mode为sql的模式,Create Function为存储函数的具体定义语句,还有数据库设置的一些信息。 0 3

从information_schema.Routines表中查看存储过程和函数的信息

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表中的存储过程和函数的定义时,一定要使用ROUTINE_NAME字段指定存储过程和函数的名称。否则,将查询出所有的存储过程或函数的定义。如果有存储过程和函数名称相同,就需要同指定ROUTINE_TYPE字段表名查询的是哪种类型的存储程序。


赞(6)
未经允许不得转载:工具盒子 » MySQL8第66期-存储过程和函数之查看