为什么signal关键字在mySQL 5.1.48中不起作用?

时间:2012-05-16 10:59:54

标签: mysql mysql-5.1

我正在使用mysql v5.1.48和红色http://dev.mysql.com/doc/refman/5.5/en/signal.html。但代码

DELIMITER $$
CREATE PROCEDURE `CoreRaiseError`()
BEGIN
  SIGNAL SQLSTATE '45000'
      SET MESSAGE_TEXT = 'An error occurred', MYSQL_ERRNO = 1001;
END$$

提出

  

SQL错误1064:您的SQL语法中有错误;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在'SQLSTATE'45000'

附近使用

SIGNAL从哪个版本开始成为关键字?如何使用以前版本的mysql引发异常?

谢谢。

1 个答案:

答案 0 :(得分:12)

the manual中针对MySQL版本5.1所述:

  

与条件相关的其他陈述是SIGNALRESIGNALGET DIAGNOSTICS。 MySQL 5.5之前不支持SIGNALRESIGNAL语句。 MySQL 5.6之前不支持GET DIAGNOSTICS语句。

要在旧版本的MySQL中引发错误,只是故意发出错误的命令。我经常CALL一个不存在的程序,例如:

CALL raise_error;