Mysql 事务

一、什么是事务?

  一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)

  一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成

  事务只和DML语句有关,或者说DML语句才有事务

二、为什么需要事务?

  因为我们在操作数据的时候,可能遇到多个线程同时操作数据的问题,也可能遇到突然数据库故障了的问题,这些都可能造成数据的不一致。所以事务要保证的就是一致性

三、事务四大特性(ACID)?

  1、原子性(A):事务是最小单位,不可再分

  2、一致性(C):事务要求所有的DML语句操作的时候,必须保证同时成功或者同时失败

  3、隔离性(I):一个事务所做的修改在最终提交以前,对其他事务是不可见的

  4、持久性(D):一旦事务提交,则其所做的修改会永久保存到数据库

四、事务的使用?

  1、开启:

    begin; 或者 start transaction;

  2、结束:

    End Transaction;

  3、提交:

    commit; 或者 Commit Transaction;

  4、回滚:

    rollback; 或者 Rollback Transaction;

五、注意?

  1、修改数据的命令会自动的触发事务,包括insert、update、delete

  2、在mysql命令行中会自动提交事务

  3、当不需要mysql命令行自动提交时 加入set autocommit=0即可

  4、SQL语句中有手动开启事务的原因是:可以进行多次数据的修改,如果成功一起成功,否则一起会滚到之前的数据

  5、不可撤销的操作(隐式提交): 除了对表数据insert/update/delete语句之外的绝大多数语句都是不能撤销的,比如数据库、表结构的操作

posted @ 2021-10-28 09:06  九月的昵称  阅读(35)  评论(0)    收藏  举报