欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL 事务处理

程序员文章站 2022-06-25 08:22:16
事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。 执行 ......

事务用于将某些操作的多个sql作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。

delimiter $$
create procedure p1 (
    out p_return_code tinyint 
)
begin 
    declare exit handler for sqlexception     # 定义 sql 异常
    begin
        -- errors
        set p_return_code = 1;                # 定义 p_return_code
        rollback;                             # 回滚操作
    end;
    
    declare exit handler for sqlwarning    
    begin
        -- warnings
        set p_return_code = 2;
        rollback;
    end;
    
    start transaction;                       # 开始事务
        delete from userinfo where username = 'klvchen';
        insert into tmp(name) values ('haha');
    commit;                                  # 提交事务
    
    -- success
    set p_return_code = 0;
    
    end $$
delimiter ;

执行

set @i =0;
call p1(@i);
select @i;