Mysql中TCL语言

TCL

一、TCL事务控制语言

事务:
一个或者一组sql语句组成一个执行单元,这个单元要么全部执行,要么全部不执行
show engine; //查看支持的引擎。
innodb引擎支持事务。
事务的特性:ACID
1、原子性(Atomicity):
原子性是指事务是一个不可分割的工作单位,事务中操作要么全执行,要么都不发生。
2、一致性(Consistency):
事务使数据库从一个一致性状态变为另一个一致性状态。
3、隔离性(Isolation):
一个事务的执行不能被其他事物干扰,并发执行的各个事务之间不能相互干扰。
4、持久性(Durability):
一个事务一旦被提交,它对数据库中数据的改变就是永久性的。

二、事务的创建

隐式事务:事务没有明显的开始和结束的标记
比如:insert,update,delete

显式事务:事务有明显的开始和结束的标记
前提:必须先设置自动提交功能为禁用

set autocommit = 0;
show variables like ‘autocommit’;
步骤1:开启事务
set autocommit = 0;
start transaction;
步骤2:编写事务中sql语句(select,insert,update,delete)
语句1,
语句2,
。。。
步骤3:结束事务
commit; //提交事务
rollback; //回滚事务

演示事务使用步骤
开启事务:
set autocommit = 0;
start transaction;
编写事务语句:
update account set balance = 1000 where username=‘syz’;
结束事务:
commit;
或者
rooback;//回滚事务

delete和truncate在事务中区别

delete
set autocommit = 0;
start transaction;
delete from account;
rollback;

truncate
set autocommit = 0;
start transaction;
truncate table account;
rollback;

事务的隔离级别

1.事务没有隔离的时候出现的问题:
脏读
针对更新
幻读
针对插入,删除
不可重复读

2.隔离级别:
读未提交
出现脏读,幻读,不可重复读
读已提交
出现幻读,不可重复读
可重复读
出现幻读
序列化
都可避免

mysql默认级别: 可重复读
oracle默认级别: 读已提交
查看隔离级别: select @@tx_isolation;
设置隔离级别,只针对当前连接有效:
set session transaction iaolation level serializable;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值