事务是数据库非常重要的一个特性

什么是事务?

数据库的事务是一种机制,一个操作序列,包含了一组数据库的操作命令
也就是说数据库里面有很多条数据的sql语句

事务把所有的命令作为一个整体一起想系统提交或者撤销操作请求
也就是说这一组数据库的命令要么同时成功要么同时失败

事务是一个不可分割的工作逻辑单元、

举例:
比如说银行转账 两个人 甲方转乙方五百块

捕获.PNG
转账开始之前要开启一个事务:开启事务就我打一个标记
告诉数据库后面的执行都是零时修改 当我 提交了事务才算是正在的对数据库里面的
数据进行了正在的修改 当事务出现了异常那么我的事务就进行回滚
撤销之前那么零时的操作回滚到开启事务之前的状态

这三个事务对应的其实就是对应的三个sql语句

——-开启事务
SATAR TRANSACTION
或者
BEGIN
———-提交事务
COMMIT
——-回滚事务:回滚到开启事务之前的那个状态
ROLLBACK

事务的四大特征:ACID

  • 原子性(Atomicity):事务是不可分割的最小操作单位,要么同时成功要么同时失败(把他当成一个整体看吗)
  • 一致性(Consistency)事务完成时,必须使所有的数据状态保持一致性
  • 隔离性(Isolayion):多个事务之间,操作的可见性

隔离性越强操作越不可见的,越弱操作就越可见的性能就越高
一般使用默认的隔离性

  • 持久性(Durability):事务一旦提交或者回滚,他对数据库中的数据的改变是永久性的

mysql的事务是默认提交的
查看事务的默认提交方式
select @@autocommit
有两个数1:是默认提交 就是自动
0:是手动提交

只要开启事务一般都要手动提交事务