MYSQL存储过程如果语句有问题

sys*_*ult 8 mysql stored-procedures

我在freebsd上使用Mysql 5.1.28-rc.我刚刚决定在MYSQL中使用存储过程并创建一个测试过程,如下所示:

DELIMITER $$ 
DROP PROCEDURE IF EXISTS test $$
CREATE PROCEDURE test( IN test VARCHAR(22) )
BEGIN
 DECLARE count INT(11);
 SET count = (SELECT COUNT(*) FROM Test WHERE test_column = test );
 SELECT count;
 IF count = 0 THEN
  SET count = 1;
 ELSE
  SET count = 2;
 ENDIF;
END $$
DELIMITER;

这个过程很好,没有IF语句,但是它给出了if语句, 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 '; END'

我该如何解决这个问题?问题出在哪儿?

Dav*_*d M 20

ENDIF在MySQL需要一个空间不是吗?即END IF

  • 它几乎不可能在你自己的代码中发现拼写错误,不用担心.让我们听一下对编程,或者,如果你不能这样做,那么......:D (3认同)
  • 圣牛,我怎么能错过:) (2认同)

小智 5

只需要end if在存储过程中占用空间