如何在MySQL中创建存储过程

看个具体的例子:

在TEST数据库中创建一个存储过程,名为getRecord:

DELIMITER $$
DROP PROCEDURE IF EXISTS `TEST`.`getRecord` $$
CREATE PROCEDURE `TEST`.`getRecord` (
IN in_id INTEGER,
OUT out_name VARCHAR(20),
OUT out_age  INTEGER)
BEGIN
   SELECT name, age
   INTO out_name, out_age
   FROM Student where id = in_id;
END $$
DELIMITER ;

这个存储过程接受学生ID为输入,输出为学生的名字和年龄,实现一个简单的查询功能。

如何在MySQL中创建存储过程_第1张图片

存储过程创建完毕后,用如下的命令行查询其状态:

show procedure status like ‘g%’

如何在MySQL中创建存储过程_第2张图片

另外一条查询命令:

show create procedure test.getRecord

如何在MySQL中创建存储过程_第3张图片

MySQL里的information_schema.Routines这张表类似SAP ABAP里的TADIR(对象注册表),所以我们也可以查询该表里对应的存储过程的记录:

select * from information_schema.Routines where routine_name = ‘getRecord’ and routine_type = ‘procedure’ \G;

如何在MySQL中创建存储过程_第4张图片
如何在MySQL中创建存储过程_第5张图片

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

你可能感兴趣的:(SQL)