什么是事务

1. 什么是事务?

事务是一系列的sql操作,要么全部成功,要么全部失败。他们符合ACID特性。

2.事务处理语句

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就能提交事务。


3.事务处理实例

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)