存储过程
存储过程
创建无参存储过程
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