什么是事务
事务用于保证数据的一致性,它由一组相关dml语句组成,该组的dml语句要么全部成功要么全部失败
事务和锁
当执行事务的时候,MySQL会在表上加锁,防止其他用户修改表中的数据,这对用户来讲是非常重要的
控制事务的基本操作
start transaction --开始一个事务
savepoint 保存点名 --设置保存点
rollback to 保存点名 --回滚到指定的保存点
rollback --回滚全部的事务
commit --提交事务,不能再回滚了
create table T5(
id int,
name varchar(11));
-- 开始一个事务
start transaction;
-- 先插入一条xinxi
insert into T5(id,name) values(1,'tom');
-- 将这里设置为保存到
savepoint a1;
-- 再插入一条信息
insert into T5 values(2,'jack');
-- 将这里设置为保存点
savepoint a2;
-- 再添加一条信息
insert into T5 values(3,'mark');
-- 查询现在表中的信息
select * from T5;
-- 回滚事务,如果我们指定保存点,这会回滚到指定的保存点
-- 如果我们直接回滚到a1的话是不可以再回滚到a2的
-- 不知道顶保存点,我们直接回滚到开始事务时
-- 回滚到a2
rollback to a2;
select * from T5;
-- 回滚到最开始
rollback;
select * from T5;
-- 提交事务,一旦提交事务之后我们就没有机会再回滚了
commit;