TCL(事务控制语言)
含义
含义:一个或一组SQL语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行
事务的特点
特点:
事务的创建
**隐式事务:**事务没有明显的开启和结束的标记,比如:insert 、update、delete语句
delete from 表 where id =1 ,执行这样就算是一个事务
**显示事务:**事务具有明显的开启和结束的表记,前提:必须先设置自动提交功能为禁用
开启事务
步骤一: 开启事务
set autocommit =0;
start transaction ;可选的
步骤二: 编写事务种的sql语句(select insert update delete)
语句 1;
语句2;
…
步骤三: 结束事务
commit ;提交事务
rollback ; 回滚事务
演示步骤
commit 可换成Rollback 回滚
事务并发问题
-
三大问题
脏读:对于两个事务T1,T2, T1读取了已经被T2更新但还没有被提交的字段,之后,若T2回滚,T1读取的内容就是临时且无效的
不可重复对于两个事务T1,T2,T1读取了一个字段,然后T2更新了该字段,之后,T1再次读取同一个字段,值就不同了
幻读::对于两个事务T1,T2,T1从一个表中读取了一个字段,然后T2在该表中插入了一些新的行.之后,如果T1再次读取同一个表,就会多出几行 -
数据库提供的4种隔离级别
-
设置隔离的命令
-
savepoint的使用(保存点)
快来护驾呀!