MySQL 如何在MySQL触发器中使用SIGNAL语句?

MySQL 如何在MySQL触发器中使用SIGNAL语句?

实际上,MySQL SIGNAL语句是一种处理意外情况和优雅退出应用程序的错误处理机制。基本上,它向处理程序提供错误信息。它的基本语法如下:

SIGNAL SQLSTATE | condition_value
[SET signal_information_item = value_1,[, signal_information_item] = value_2,
etc;]
Mysql

在这里,SIGNAL关键字是由DECLARE CONDITION语句声明的SQLSTATE值或条件名称。SIGNAL语句必须始终指定一个SQLSTATE值或命名条件,并带有一个SQLSTATE值。SIGNAL语句的SQLSTATE值由一个五位字符的字母数字代码组成。我们不应该用“00”开头的SQLSTATE代码,因为这些值表示成功,并且不能用于发出错误信号。如果我们的值无效,将发生Bad SQLSTATE错误。对于捕获所有错误的处理,我们应该分配一个SQLSTATE值为’45000’,表示“未处理的用户定义异常”。

为了说明在MySQL触发器中使用SIGNAL语句的用法,我们使用以下示例,在student_age表上创建一个 BEFORE INSERT 触发器。 如果我们尝试输入小于0的年龄,它将使用SIGNAL语句抛出错误消息。

阅读更多:MySQL 教程

示例

mysql> Create trigger before_insert_studentage BEFORE INSERT on
student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE
'45000' SET MESSAGE_TEXT = 'age less than 0'; END if; END; //
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into student_age(age, name) values(-10,'gaurav')//
ERROR 1644 (45000): age less than 0
Mysql

从上面的结果集可以看出,如果我们尝试插入小于0的年龄,则会使用SIGNAL语句抛出错误。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册