1、事务简介
- 所为事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位
- 事务的特征(ACID):
- 原子性(Atomicity)
一个事务必须被视为一个不可分割的最小单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对弈一个事务来说,不可能值执行其中的一部分操作,这就是事务的原子性 - 一致性(Consistency)
数据库总是从一个一致性的状态转换到另一个一致性的状态 - 隔离性(Isolation)
通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的 - 持久性(Durability)
一旦事务提交,则其所做的修改会永久保存到数据库
- 原子性(Atomicity)
2、事务的使用
- 可以使用start transaction语句开始一个事务,然后要么使用commit提交将修改的数据持久化保存,要么使用rollback撤销所有的修改,事务的使用方法如下:
start transaction;
sql语句1;
sql语句2;
...
commit;
如下,即在数据中心开启事务,做了一条修改,但是暂时还没有执行commit操作
此时另外打开一个窗口,连接到数据库之后查询,发现上面的修改并未生效
在第一个窗口中执行commit提交操作
此时再到第二个窗口查看结果,此时发现已经发生了更新
如果在commit之前想放弃修改,使用rollback即可回滚
注意:mysql客户端默认每一条语句就是一个事务,如果只是一条语句,不需要显示的去开启事务,如果是多条语句,则需要显示的去开启事务,sql命令执行完成之后一定要执行commit命令,否则不会生效的。