存储过程语法
DELIMITER $$//声明语句结束符
CREATE PROCEDURE test()//声明存储过程
BEGIN//存储过程开始符号
SELECT 1;//存储过程体
END $$//存储过程结束符号
DELIMITER ;//声明语句结束符
CALL test;//调用存储过程
1
参数类型:in、out、inout
in传入参数:
DELIMITER $$
DROP PROCEDURE IF EXISTS testIn $$
CREATE PROCEDURE testIn(IN num INT)
BEGIN
SELECT num;
SET num=2;//局部变量
SELECT num;
END $$
DELIMITER ;
SET @num=1;//全局变量
CALL testIn(@num);
1
2
SELECT @num;
1
out传出参数:
DELIMITER $$
DROP PROCEDURE IF EXISTS testOut $$
CREATE PROCEDURE testOut(OUT num INT)
BEGIN
SELECT num;
SET num=2;
SELECT num;
END $$
DELIMITER ;
SET @num=1;
CALL testOut(@num);
null
2
out是输出参数,不接受输入的值,所以为null
2
inout输入输出参数
DELIMITER $$
DROP PROCEDURE IF EXISTS testInOut $$
CREATE PROCEDURE testInOut(INOUT num INT)
BEGIN
SELECT num;
SET num=2;
SELECT num;
END $$
DELIMITER ;
SET @num=1;
CALL testInOut(@num);
1
2
SELECT @num;
2