存储过程

存储过程

创建无参存储过程

DELIMITER //
CREATE PROCEDURE p1()
BEGIN
    SELECT * FROM db1.student;
END//
DELIMITER

mysql调用

CALL p1();

python中调用

cursor.callproc('p1')

创建有参存储过程

  • 明确指定类型
  • 明确指定是接收(in)参数还是返回(out)参数
DELIMITER //
CREATE PROCEDURE p2(in n1 int,in n2 int,out res int)
BEGIN
    SELECT * FROM db1.student WHERE id > n1 AND id < n2;
    SET res=1;
END//
DELIMITER

mysql中执行

SET @x=0
CALL p2(2,4,@x);

查看x值

SELECT @x

python中调用

cursor.callproc('p2',(2,4,0))
#查询结果
cursor.fetchall()
#查看参数返回值
cursor.execute('select @_p2_2')
cursor.fetchone()

定义可进可出参数

CREATE PROCEDURE p2(in n1 int,in n2 int,out res int,inout n3 int)
BEGIN
    SELECT * FROM db1.student WHERE id > n1 AND id < n2;
    SET res=1;
END//
DELIMITER
原文地址:https://www.cnblogs.com/yaya625202/p/9074145.html