各位大虾,我的mysql版本是:5.0.18-log
为什么我在过程体内用decalre声明变量会出错?
代码:
mysql> CREATE PROCEDURE p12 (IN parameter1 INT)
    -> BEGIN
    -> DECLARE variable1 INT
    -> SET variable1 = parameter1 + 1
    -> IF variable1 = 0 THEN
    -> INSERT INTO t VALUES (17)
    -> END IF
    -> IF parameter1 = 0 THEN
    -> UPDATE t SET s1 = s1 + 1
    -> ELSE
    -> UPDATE t SET s1 = s1 + 2
    -> END IF
    -> END;错误:
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 'INT
SET variable1 = parameter1 + 1
IF variable1 = 0 THEN
INSERT INTO t VALUES (1' at line 3

解决方案 »

  1.   

    mysql> use test2;
    Database changed
    mysql> delimiter ||
    mysql> create procedure p12 (IN parameter1 int)
        -> begin
        -> declare variable1 int;
        -> set variable1=parameter1 + 1;
        -> if variable1 = 0 then
        -> insert into t values(17);
        -> end if;
        -> if parameter1 = 0 then
        -> update t set s1=s1+1;
        -> else
        -> update t set s1=s1+2;
        -> end if;
        -> end||
    Query OK, 0 rows affected (0.25 sec)mysql> delimiter ;
    mysql>