比如下面这个例子-----CREATEPROCEDUREsp_demo_in_parameter(INp_inINT)BEGINSELECTp_in;SETp_in=2;selectp_in;END;执行结果:mysql>set@p_in=1mysql>callsp_demo_in_parameter(@p_in)...
比如下面这个例子-----
CREATE PROCEDURE sp_demo_in_parameter(IN p_in INT) BEGIN SELECT p_in;
SET p_in=2;
select p_in;
END;
执行结果:
mysql> set @p_in=1
mysql> call sp_demo_in_parameter(@p_in)
----------
我运行
CREATE PROCEDURE sp_demo_in_parameter(IN p_in INT) BEGIN SELECT p_in;
SET p_in=2;
select p_in;
END;就出错了
mysql> CREATE PROCEDURE sp_demo_in_parameter(IN p_in INT) BEGIN SELECT p_in;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
mysql> SET p_in=2;
ERROR 1193 (HY000): Unknown system variable 'p_in'
mysql> select p_in;
ERROR 1054 (42S22): Unknown column 'p_in' in 'field list'
mysql> END;
好像前面要定义什么变量似地,可是例子就是这样写的啊,mysql的参考文档也是这样啊
现在实验成了,怎么要加那么多//为什么呀
mysql> delimiter //
mysql> create procedure p7()
-> BEGIN
-> set @a=6;
-> set @b=5;
-> insert into t values (@a);
-> select s1 * @a from t where s1>= @b;
-> END;
-> //
Query OK, 0 rows affected (0.04 sec)
mysql> call p7;
-> //
+---------+
| s1 * @a |
+---------+
| 30 |
| 36 |
+---------+
2 rows in set (0.03 sec)
Query OK, 0 rows affected (0.06 sec)
展开