MySQL的DECLARE...HANDLER使用讲解
一. 功能
DECLARE...HANDLER语法如下:
DECLARE handler_action HANDLER FOR condition_value [, condition_value] ... statement
功能概括起来就是:
在一个或者多个condition_value满足时,先执行statement语句,然后执行handler_action动作。
二. 参数解释
2.1 statement
statement语句可以是一行简单的SQL语句,如SET var_name = value,也可以是多行复杂的的SQL语句,但多行SQL语句需要使用BEGIN和END包围。
简单statement:
DECLARE CONTINUE HANDLER FOR 1051 SET result = 0;
复杂的statement:
DECLARE CONTINUE HANDLER FOR 1051 BEGIN -- body of handler END;
2.2 handler_action
handler_action的取值如下:
CONTINUE:表示继续执行当前SQL脚本。 EXIT:表示终止执行当前SQL脚本。即使condition_value(见2.3)由statement语句的BEGIN...AND语句块引发,也是一样会终止执行。
2.3 condition_value
condition_value的取值可以为如下几种:
● mysql_error_code:MySQL的错误码,整数类型。
DECLARE CONTINUE HANDLER FOR 1051 BEGIN -- body of handler END;
MySQL错误码取值见:https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html
● SQLSTATE :用5个字符表示的SQLSTATE值。
DECLARE CONTINUE HANDLER FOR SQLSTATE '42S02' BEGIN -- body of handler END;
以’00’开始的值表示成功。
SQLSTATE的完整取值列表见:https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html
● condition_name:使用DECLARE ... CONDITION定义的条件的名称。
如何使用DECLARE ... CONDITION定义条件
● SQLWARNING:相当于值从’01’开始的SQLSTATE 。
● NOT FOUND:相当于值从’02’开始的SQLSTATE 。
● SQLEXCEPTION:相当于值不为'00','01','02'的所有 SQLSTATE。
上一篇: 排序之二:希尔排序(C语言实现)
下一篇: C++学习笔记(1)
推荐阅读
-
通过dbi使用perl连接mysql数据库的方法
-
使用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: '' for column 'createtime'的快速解决方法
-
使用PHP备份MYSQL数据的多种方法
-
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
-
使用DataFrame删除行和列的实例讲解
-
使用distinct在mysql中查询多条不重复记录值的解决办法
-
使用shell检查并修复mysql数据库表的脚本
-
查看当前mysql使用频繁的sql语句(详解)
-
mysql下IF语句的简单使用
-
mysql的jdbc配置(mysql数据库备份讲解)