| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 正厚干货 | MySQL数据库事务控制 -> 正文阅读 |
|
[大数据]正厚干货 | MySQL数据库事务控制 |
本文由成都正厚沈瑜老师供稿 1、事务控制概念 在MySQL中用于处理操作量大、复杂度高的数据。比如在人员管理系统中,删除一个人员,既需要删除人员的基本信息,也需要删除和该人员相关的信息,如信箱、文章、发起的事务等等,这些数据的操作语句就构成了一个事务。 当然只有使用了Innodb数据引擎的数据库或表才支持事务,在使用过程中药保证成批的SQL语句要么全部执行,要么全部执行,这样的事务处理可以维护数据库数据的完整性。一般在事务中会出现insert、update、delete、select语句。 2、事务控制特性 原子性:一个事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务结束之后,数据库的完整性没有被破坏。这表示写入额资料必须完全符合所有的预设规则,包含资料的精确度、串联性以及后续数据库可以自发性地完成预定工作。 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务的隔离又分为不同级别,包括读未提交、读提交、可重复读和串行化。 持久性:事务处理结束后,对数据的修改应该是永久的即便系统故障也不会丢失。 3、事务控制相关命令 (1) Begin开始事务; (2) Rollback回滚事务; (3) Commit提交事务; (4) Set autocommit=0 禁止自动提交模式; (5) Set autocommit=1开启自动提交模式 4、事务控制提交方式 (1) 手动提交:通过关键字手动管理事务,需要用commit命令直接完成的提交为显示提交,如下: 表中结果展示: (2) 自动提交:自动提交需要开启后才能使用,开启后相当于每次执行的sql都是一个事务,并自动提交它,如果sql执行失败会自动还原现场。 ① 默认是开启状态,所以我们随便执行一条操作数据的sql都会提交到表中 ② 关闭状态:set autocommit=0 执行这条语句就关闭了自动提交 ③ 查看自动提交是否打开语句:select @@autocommit; 表中并不会插入3,4这两条数据: 5、事务控制回滚 当执行语句遇到问题执行不成功时,数据不会受到任何改变,就需要在sql语句中使用rollback命令: 执行完以上语句,6,7两条数据不会出现在数据表中: |
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 17:04:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |