当前位置:   article > 正文

SQL事务

sql事务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、SQL事务

二、特征

三、事务控制语句

四、事务处理方法

五、实例


前言

这是一篇关于SQL事务的文章


提示:以下是本篇文章正文内容,下面案例可供参考

一、SQL事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

  • 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
  • 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。
  • 事务用来管理 insert , update , delete 语句。

二、特征

一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性或不可分割性)、Consistency(一致性)、Isolation(隔离性或独立性)、Durability(持久性)

  • 1、原子性:**一组事务,要么成功;要么撤回,即事务在执行过程中出错会回滚到事务开始前的状态。
  • 2、一致性 : 一个事务不论是开始前还是结束后,数据库的完整性都没有被破坏。因此写入的数据必须完全符合所有预设规则(资料精确度、串联性以及后续数据库能够自发完成预定工作)。
  • 3、隔离性:**数据库允许多个事务并发的同时对其数据进行读写修改等操作,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离可分为:Read uncommitted(读未提交)、Read committed(读提交)、Repeatable read(可重复读)、Serializable(串行化)。
  • 4、持久性:**事务在处理结束后对数据做出的修改是永久的,无法丢失。

三、事务控制语句

1,显式的开始一个事务

  1. start transaction
  2. 或者
  3. begin

2, 做保存点,一个事务中可以有多个保存点

savepoint 保存点名称

3, 提交事务,并使数据库中进行的所有修改成为永久性的

  1. commit
  2. 或者
  3. commit work

4,回滚结束用户的事务,并撤销正在进行的所有未提交的修改

  1. rollback
  2. 或者
  3. rollback work

5.删除一个事务的保存点,若没有指定保存点,执行该语句操作会抛错

release savepoint 保存点名称

6.将事务滚回标记点

rollback to 标记点

7.设置事务的隔离级别。InnoDB 存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIZABLE

set transaction

四、事务处理方法

1.用 begin , rollback , commit 来实现事务处理。

2.用 set 来改变 MySQL 的自动提交模式。

  • set autocommit = OFF (禁止自动提交)。
  • set autocommit = ON (开启自动提交)。

五、实例

  1. -- 关闭自动提交
  2. SET autocommit = OFF;
  3. SHOW VARIABLES LIKE 'autocommit';
  4. -- 开启事务 (一组事务)
  5. START TRANSACTION;
  6. UPDATE shop SET money = money + 500 WHERE NAME = 'A';
  7. UPDATE shop SET money = money + 10000 WHERE NAME = 'B';
  8. COMMIT; -- 提交事务 一旦提交就被持久化了
  9. ROLLBACK; -- 回滚
  10. SET autocommit = on; -- 恢复默认值

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/957428
推荐阅读
相关标签
  

闽ICP备14008679号