我正在使用 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 Error 1064: 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 'SQLSTATE '45000'
SIGNAL从哪个版本开始成为关键字?我怎样才能用以前版本的 mysql 引发异常?
谢谢。
最佳答案
如 the manual 中所述对于 MySQL 5.1 版:
Other statements related to conditions are
SIGNAL
,RESIGNAL
, andGET DIAGNOSTICS
. TheSIGNAL
andRESIGNAL
statements are not supported until MySQL 5.5. TheGET DIAGNOSTICS
statement is not supported until MySQL 5.6.
要在旧版本的 MySQL 中引发错误,只需故意发出错误的命令即可。我经常CALL
一个不存在的过程,例如:
CALL raise_error;
关于mysql - 为什么 signal 关键字在 mySQL 5.1.48 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10617136/