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

标签 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 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, and GET DIAGNOSTICS. The SIGNAL and RESIGNAL statements are not supported until MySQL 5.5. The GET 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/

相关文章:

mysql - 如何在 MySql 表中存储 MS Sql Server 唯一标识符

mysql - 使用 MySQL 用户定义变量在 UPDATE 语句上连接表名

php - 将发布的密码与 MySQL 存储的加密密码进行比较

innodb - 无法删除 MySQL InnoDB 表

mysql - 将年时日期间隔转换为天数

mysql - mysql 5.1 的正则表达式(根据用户输入查找条目)

PHP备份数据库并发送电子邮件

mysql - Magento MySQL 数据库死锁

mysql - 日期函数不适用于 Mysql 5.1

mysql - 将 yyyyMMdd'T'HHmmssSSS'Z' 转换为 DATETIME