# 事务操作
* 事务概念
> 事务(transaction):事务可以由一个或多个SQL语句组成,这写SQL语句是一个独立的单元,这个单元是一个整体是不可分割的。如果事务中的某一个语句执行失败,整个事务就会回滚到最初状态。因此,只有事务中所有语句都被执行成功,这个事务才会执行成功。
> 可以通过转账来理解事务,只有A成功转了,然后B成功收到了钱,才能算转账成功。当转成功,但是没有收到,应该将钱返回给A。
* 事务的ACID属性:
事务必须有ACID属性
原子性 Atomicity
一致性 Consistency
隔离性 Isolation 也叫孤立性
持久性 Durability
原子性: 原子型意味着意味着每个事务都必须被认为是一个不可分割的单元。整个事务中的所有操作,要么全部完成,要么全部不完成。
例如:买卖。只有买与卖都成功,才成功。不能说只有买或者只有卖
一致性: 事务必须始终保持系统处于一致的状态。
例如:对于买卖双方,当买卖失败了,双方就都应该一致认为失败了,当买卖成功了,双方都一致认为买卖成功了。
隔离性:每个事务对于数据库执行来说都是不可拆分的最小单元,所以每个事务都有着自己独立的副本,由数据库进行执行与操作。
例如:A与B的买卖,C与D的买卖互不干扰。
持久性:事务在运行成功之后,数据会持久保存到数据库上。
* 事务注意的问题
1. 只有innodb引擎支持事务<