mysql事务处理语句及使用

文章目录

        • 一、事务处理语句
        • 二、事务处理实例

一、事务处理语句

1、begin,rollback,commit

  • begin;/start transaction; 开始事务
  • rollback; 回滚事务(撤销所有未提交的事务)
  • commit; 提交事务**

2、改变mysql的提交模式

  • set autocommit=0; 禁止自动提交
  • set autocommit=1; 开启自动提交

3、保存点

  • savepoint s1; 设置自动保存点s1
  • rollback to s1; 回滚到s1

注:自动提交事务,就是不需要commit就能提交事务。

二、事务处理实例

create table test(id int);

-- 开始事务,提交事务
-- 所以1被插入
begin;
insert into test values(1);
commit;

-- 先回滚事务,再提交事务
-- 所以2没有被插入
begin;
insert into test values(2);
rollback;
commit;

-- 先回滚到s1,再提交事务
-- 所以3被插入,4没有被插入
begin;
insert into test values(3);
savepoint s1;
insert into test values(4);
rollback to s1;
commit;

-- 回滚事务,事务未提交
-- 所以5没有被插入
start transaction;
insert into test values(5);
rollback;

-- 自动提交,再回滚
-- 所以6会被插入
set autocommit=1;
insert into test values(6);
rollback;

-- 禁止自动提交 再回滚
-- 所以7未被插入
set autocommit=0;
insert into test value(7);
rollback;


select*from test;

运行结果:
mysql事务处理语句及使用_第1张图片

你可能感兴趣的:(mysql)