我正在使用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引发异常?
谢谢。
答案 0 :(得分:12)
如the manual中针对MySQL版本5.1所述:
与条件相关的其他陈述是
SIGNAL
,RESIGNAL
和GET DIAGNOSTICS
。 MySQL 5.5之前不支持SIGNAL
和RESIGNAL
语句。 MySQL 5.6之前不支持GET DIAGNOSTICS
语句。
要在旧版本的MySQL中引发错误,只是故意发出错误的命令。我经常CALL
一个不存在的程序,例如:
CALL raise_error;