mysql定义条件和处理_MySQL之条件的定义和处理

(1)条件是用来定义在处理过程当中遇到问题时相应的处理步骤。mysql

(2)条件定义的语法:sql

DECLARE  condition_name  CONDITION  FOR  codition_valuecode

condition_value:it

SQLSTATE [VALUE] sqlstate_valueio

| mysql_error_codeast

(3) 条件处理的语法:变量

DECLARE  handler_type  HANDLER  FOR  condition_value [,...] sp_statement语法

handler_type:call

CONTINUE  |   EXIT  |  UNDO  error

conditon_value:

SQLSTATE  [VALUE] sqlstate_value

|  condition_name

|  SQLWARING

|  NOT  FOUND

| SQLEXCEPTION

| mysql_error_code

示例:

下面对比有条件处理和没条件处理

没条件处理:(已经插入主键ID 1~200的记录)

CREATE  PROCEDURE  actor_insert()

BEGIN

SET   @x=1;

INSERT  INTO  actor(actor_id, first_name,last_name) VALUES(201 , 'TEST', '201');

SET  @X=2;

INSERT  INTO actor(actor_id,first_name,last_name) VALUES(1,'TEST',‘1’);

SET @x=3;

END ;

$$

call  actor_insert()

增长了条件语句,用于处理主键重异常

CREATE PROCEDURE  actor_insert()

BEGIN

DECLARE  CONTINUE  HANDLER  FOR   SQLSTATE  '23000' SET @X2=1;

SET  @X=1;

INSERT  INTO  actor(actor_id,first_name,last_name)  VALUES(201,'TEST','201');

SET   @x=2;

INSERT  INTO actor(actor_id,first_name,last_name)  VALUES(1,'TEST','1');

SET @X=3;

END ;

注释:调用条件处理的过程,再遇到主键重的错误时,会按照定义的处理方式进行处理。

handler_type: 支持CONTINUE(继续执行)和EXIT(执行终止)

continue_value的值分为:自定义(declare 声明变量);SQLDATA 值 ; mysql-error-code ; SQLWARNING ; NOT FOUND ; SQLEXCEPTION

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值