标题: mysql是否支持这样的语句:DECLARE EXIT HANDLER FOR sqlexception ROLLBACK [打印本页] 作者: laobao 时间: 2010-2-2 15:02 标题: mysql是否支持这样的语句:DECLARE EXIT HANDLER FOR sqlexception ROLLBACK 如题,mysql是否支持这样的语句?在mysql 5.1的手册中看到如下内容:
mysql> CREATE PROCEDURE handlerdemo ()
-> BEGIN
-> DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
-> SET @x = 1;
-> INSERT INTO test.t VALUES (1);
-> SET @x = 2;
-> INSERT INTO test.t VALUES (1);
-> SET @x = 3;
-> END;
-> //
但我5.0 和 5.1版本测试上述语句时, DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;这句总是报语法错误。作者: kider 时间: 2010-2-2 15:43
支持,你用报错后输出的信息,替换23000就可以了作者: laobao 时间: 2010-2-2 16:42
mysql> DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
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 'DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1' at line 1
这是在我电脑上运行的错误,我用1064和42000替换23000都不对啊,还是同样的错误。作者: kider 时间: 2010-2-2 17:16
那就换种方式,例:DECLARE EXIT HANDLER FOR 1064
看看语法...