MySQL数据库事务

MySQL数据库事务,第1张

MySQL数据库事务

什么是事务
多条sql语句,要么全部成功,要么全部失败。MySQL的事务是在存储引擎层实现。 MySQL的事务有ACID
A 原子性(atomicity):一个事务必须被视为一个不可分割的单元。
C 一致性(consistency):数据库是从一种状态切换到另一种状态。
I 隔离性(isolation):事务在提交之前,对于其他事务不可见。
D 持久性(durablity):一旦事务提交,所修改的将永久保存到数据库。
事务命令
事务开始:start transaction
事务开始:begin
事务提交:commit
事务回滚:rollback

编写事务开始需使用start transaction或begin编写

编写完内容只能在本机中查看

其他机中内容不变

只有在使用commit命令后才可在其他机中查看更改的内容

如果不想提交可以使用回滚rollback来撤销

查看自动提交模式是自动还是手动

事务有4种隔离级别 事务在提交之前对其他事务可不可见

  1. read uncommitted(未提交读)
  2. read committed(已提交读)
  3. Repeatable read(可重复读)
  4. serializable可串行化)

未提交读 事务中修改没有提交对其他事务也是可见的,俗称脏读

Session 设成
Transaction 事务
Isolation level 事务隔离等级

已提交读 多数数据库系统默认为此级别(MySQL不是)。已提交读级别为一个事务只能已提交事务所做的修改,也就是 解决了未提交读的问题

可重复读 解决了不可重复读的问题,数据库级别没有解决幻读的问题

可串行化 是最高隔离级别,强制事务串行执行,执行串行了也就解决问题了,这个I别只有在对数据一致性要求非常严格并且没有 并发的情况下使用

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5435001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存