事务:
最小的执行单元,事务中的语句要成功全部成功,有一个失败,全部回滚。
– 事务操作:DML(insert、update、delete)
– MySQL:事务默认自动提交的
– 事务操作过程:
– 开启事务 start transaction
– 提交事务 commit
– 事务回滚 rollback
– 事务保存点 savepoint,可以选择回滚到某个保存点
start transaction; //开启事务
update student set sname=‘zhangsan’ where sno=‘20010101’;
savepoint s1;
update student set sname=‘lisi’ where sno=‘20010102’;
savepoint s2;
rollback to s1;
commit; //提交事务
事务的特性:ACID
– 事务的特性:A:原子性 C:一致性 I:隔离性 D:持续性
A(Atomicity) 原子性
原子性是整个数据库事务是不可分割的工作单位,只有事务中的所有的数据库操作都执行成功,才算整个事务成功。事务中任何一个SQL执行失败,已经执行成功的SQL语句也必须撤销,回到执行事务的之前的状态。
C(Consistency) 一致性
一致性是指事务将数据库从一种一致性状态变为下一种一致性状态。在事务开始之前和之后,数据库的完整性约束没有被破坏。
I(Isolation) 隔离性
隔离性要求每个读写事务对其他事务的操作对象能相互分离。
比如A转账的银行是工商银行,那么别人在工商银行转账不能干扰A的转账行为。
D(Durability) 持久性
持久性指事务一旦提交,其结果就是永久性的。