Transaction
时间: 2023-09-09 12:14:20 浏览: 54
事务是数据库管理系统执行的一组操作,这些操作要么全部执行,要么全部回滚。在事务中,可以包含多个SQL语句,如插入、更新、删除等操作。事务的目的是确保数据的一致性和完整性。在MySQL中,可以使用以下步骤来执行事务:
1. 开启事务(可选):使用start transaction;语句来开启事务。这一步是可选的,因为MySQL默认会自动开启事务。
2. 编写事务中的SQL语句:在事务中编写需要执行的SQL语句,如insert、update、delete等。例如,如果要实现“李二给王五转账”的事务过程,可以使用update语句来更新账户余额。
3. 结束事务:使用commit;语句来提交事务,确保所有操作都成功执行。如果希望回滚事务,可以使用rollback;语句来回滚到事务执行前的状态。
事务具有四个特性,也称为ACID特性:
1. 原子性(Atomicity):事务是一个不可分割的最小工作单元,要么全部执行,要么全部回滚。
2. 一致性(Consistency):事务必须将数据库从一个一致状态变换到另一个一致状态。例如,李二给王五转账50元的事务操作应该保证李二账户减去50元,王五账户加上50元,其他事务看到的状态要么是转账未完成,要么是转账已完成,不可见中间状态。
3. 隔离性(Isolation):事务的执行不能被其他事务干扰,一个事务的操作和使用的数据对其他并发事务是隔离的。多个事务之间不能相互干扰。
4. 持久性(Durability):一旦事务提交成功,对数据库中的数据改变将是永久性的,即使在接下来的其他操作或故障发生时,也不应该对其产生任何影响。
事务可以分为隐式事务和显式事务两种。隐式事务是指在执行DML语句(如insert、update、delete)时,系统自动为每个语句创建一个事务,并自动提交事务。显式事务是指使用事务控制语句(如start transaction;、commit;、rollback;)来明确地开启、提交或回滚事务。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [MySQL事务(transaction) (有这篇就足够了..)](https://blog.csdn.net/qq_56880706/article/details/122653735)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]