事务——ACID(事务处理的撤销)

事务:数据库执行事件的最小单元(打开SQL PLUS 相当于一个事务开始了)

A:原子性      C:一致性(事务执行前后一致)       I:独立性              D:持久性

撤销DML事务处理

可撤销语句:所有dml语句(insert,update,delete)
ddl,dcl等都不可以撤销
能写在事务中的语句只有select和DML语句
因为如果出现非DML并且不是select,之前的操作就会被提交,不可撤销(例:创建下一个table时,前一个table就会被提交,因为create不是DML语句)

执行事务时如果没有非DML语句执行,关闭页面时因为没有提交,此事务所作的操作不会保留,要保留用commit;语句。

没有提交的事务,别人看不到(除当前事务外)

savepoint a;  设保存点,a为保存点

回滚操作:
rollback;    撤消之前事务所做的操作
rollback to a;

commit;  提交当前所做修改,之后不可回滚

select * from shangpin
where name='白酒1'
for update;                 给where语句相关的资源加锁

当一个事务给字段加锁后,其他事务不能对它进行访问。
死锁的例子:两个事务都要对A和B进行操作,一个先缩A,另一个先锁B,然后再锁另外一个时会出现死锁的现象
但SQL遇见死锁时会强制进行处理,让一个事务退出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章