今天听了关于Mysql事务的分享,查阅了关于事务的内容。也在思考当问到这个问题的时候应该如何去总结和表达出自己理解的事务
1.是什么
一句话概括,就是一件事情,要么完全做完,要么完全不做。
数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
2.事务的特征
一个逻辑工作单元要成为事务,必须满足ACID(原子性、一致性、隔离性和持久性)属性
原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚
一致性(Consistency)
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
例如:银行转账,A和B总金额是500,不管怎么转,中间的操作是怎么样的,最后总金额始终是500.一种一致性状态
隔离性(Isolation)
并发事务之间互相影响的程度。
事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
事务的并发操作可能出现的问题:脏读,不可重复读,幻读
持久性(Duration)
事务提交后,对系统的影响是永久的。该修改即使出现致命的系统故障也将一直保持。
3.事务语句
开始事物:BEGIN TRANSACTION
提交事物:COMMIT TRANSACTION
回滚事务:ROLLBACK TRANSACTION
提交事物:COMMIT TRANSACTION
回滚事务:ROLLBACK TRANSACTION
保存点的名称和位置:SAVE TRANSACTION 保存点名称
回滚到保存点:ROLLBACK TRANSACTION 保存点名称
回滚到保存点:ROLLBACK TRANSACTION 保存点名称