6.mysql 事物

本文深入探讨了数据库事务管理的基础知识,包括事务语句的使用、隐式提交与回滚的概念,以及truncate与delete的区别。同时,文章详细解析了事务的隔离级别,特别是MySQL默认的可重复读隔离级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务语句

事务开启语句是由begin或start transaction(read write|read only)命令来开始的,或者把自提交特性关掉(执行set autocommit=0命令),

select * from test;

begin;

insert into test (id,name) values(4,’dd’);

commit;

select * from test;

begin;

insert into test(id,name) values(5,’ee’);

rollback;

select * from test;

 

隐式提交:

DDL语句的操作或再次输入begin和start transaction命令,隐式回滚可以退出会话、连接超时或关机等:

select * from test;

begin

insert into t(id,name) values(5,’ee’);

create table tt(id int);

select * from test; (有数据);

在DDL语句中默认自带一个commit;

隐匿回滚:select * from test;

begin;

insert into test(id,name) values(66,’dd’);

exit

再查询未提交有此记录

 

truncate和delete的区别:

truncate是DDL语句操作,delete是DML语句操作,truncate在事务中不能被回滚,且会清空表的自增属性,都是清空表的数据。

 

事务的隔离级:

目前mysql默认隔离级是可重复读(repeatable_read)

show variables like '%tx_isolation%';

show variables like '%iso%';

select * from t;

begin;

insert into t (name,city) values (‘f’,’tj’);

commit;

begin; (会话2)

select* from t;

select * from t for update; for update可以查到最新数据版本号的记录,或者执行commit操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值