create procedure proc()
begin
declare var integer(15);
end
这段代码开始是在linux下运行(ubuntu9.04 + mysql 5.1.31)没有问题,但是后来移到windows下(windows xp + mysql 5.1.39)就出问题了,错误消息如下:
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 'end' at line 1.把declare语句去掉后,后面的语句都能被mysql正常解释。多次实验,发现windows版本下的mysql的存储过程似乎不支持declare语句,遇到declare就报错。这不应该啊,都5.1了,而且同版本号的linux版都能正常解释。哪位仁兄能解释一下呢?
CREATE PROCEDURE proc()
BEGIN
DECLARE var INTEGER(15); END$$DELIMITER ;
mysql> create procedure proc()
-> begin
-> declare var integer(15);
-> end
-> //
Query OK, 0 rows affected (0.34 sec)mysql> select version()//
+----------------------+
| version() |
+----------------------+
| 5.1.33-community-log |
+----------------------+
1 row in set (0.05 sec)mysql>
mysql> create procedure proc()
-> begin
-> declare var integer(15);
-> end
-> //
Query OK, 0 rows affected (0.02 sec)
mysql> create procedure proc()
-> begin
-> declare var integer(15);
-> end
-> //
Query OK, 0 rows affected (0.00 sec)mysql> call proc();
-> //
Query OK, 0 rows affected (0.02 sec)mysql> select version();
-> //
+------------------+
| version() |
+------------------+
| 5.1.34-community |
+------------------+
1 row in set (0.00 sec)mysql>
mysql> create procedure proc()
-> begin
-> declare var integer(15);
-> end
-> //
Query OK, 0 rows affected (0.05 sec)
我的也没问题
不好意思,献丑了……