概述
用户定义了一系列执行SQL语句的操作,这些操作要么完全的执行,要么全部都不执行,他是一个不可分割的工作执行单位,这也是为了保证数据库的完整性。MySQL 事务主要用于处理操作量大,复杂度高的数据。
特征
原子性(Atomicity)
一事务是最小的执行单元,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚,回滚到没有执行前的状态。
一致性(Consistency)
从一个一致状态切换到另一个一致状态。在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的数据必须完全符合所有的预设规则。
隔离性(Isolation)
对其他事务不可见。数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
持久性(Durability)
一旦提交事务,将被永久保存到数据库。事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
事务的使用
存储引擎
常用的引擎:InnoDB、MyISAM
确保存储引擎是:InnoDB
修改引擎:
alter table 表名 engine = '存储引擎类型';
MyISAM不支持事务,其优点是访问速度快。
开启事务
begin; #取消自动提交事务(临时) set autocomint = 0;
提交、回滚数据
#修改数据后需要手动提交 commit; #若出现错误,不提交则可以选择回滚到执行前的数据状态 rollback;