MariaDB社区

标题: 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
看看语法...




欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2