MYSQL-使用事务保证数据完整性

什么是事务?

  •  事务(Transaction)是作为单个逻辑工作单元执行的一系列操作

  •  多个操作作为一个整体向系统提交,要么都执行,要么都不执行


事务的特性:

事务必须具备以下四种属性,简称ACID属性

1、原子性(Atomicity)

事务是一个完整的操作,事务的各步操作是不可分割的(原子的),要么都执行,要么都不执行。

2、一致性(Consistency)

当事务完成时,数据必须处于一致状态。

 3、隔离性(Isolation)

并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务。

4、 持久性(Durability)

事务完成后,它对数据库的修改被永久保持。


 

如何创建事务 

MySQL中支持事务的存储引擎有InnoDB和BDB。

开始事务 Begin;

提交事务 Commit;

回滚(撤回)事务 Rollback;


示例

DDL+DML

CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',`createDate` datetime DEFAULT NULL,`userName` varchar(20) DEFAULT NULL,`pwd` varchar(36) DEFAULT NULL,`phone` varchar(11) DEFAULT NULL,`age` tinyint(3) unsigned DEFAULT NULL,`sex` char(2) DEFAULT '男',`introduce` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;CREATE TABLE `result` (`rid` int(11) NOT NULL AUTO_INCREMENT COMMENT '成绩编号',`testName` varchar(255) DEFAULT NULL COMMENT '测试名称',`score` double(4,2) DEFAULT NULL COMMENT '成绩',`studentId` int(11) DEFAULT NULL COMMENT '学生id',PRIMARY KEY (`rid`),KEY `studentId` (`studentId`),CONSTRAINT `result_ibfk_1` FOREIGN KEY (`studentId`) REFERENCES `student` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
insert into student values(0,'2024-02-25 10:10:10','赵灵儿','123',
'15612345678',16,'女','逍遥哥哥,你终于找到我了。');
insert into student values(0,'2024-02-25 10:10:10','王语嫣','123',
'15612345678',17,'女','慕容复,我和你不共戴天。');
insert into student values(0,'2024-02-25 10:10:10','龙姑娘','123',
'15612345678',22,'女','我想过过过儿过过的日子。');
insert into student values(0,'2024-02-25 10:10:10','杨过','123',
'15612345678',18,'男','一遇杨过误终身。');
insert into student values(0,'2024-02-25 10:10:10','杨逍','123',
'15612345678',27,'男','杨过跟程英的大儿子。');
insert into student (userName,age,introduce)values('黄衣女子',26,'杨过与龙姑娘的大女儿。');insert into result values(0,'政治',96,1);
insert into result values(0,'地理',86,5);
insert into result values(0,'政治',77,3);
insert into result values(0,'英语',99,3);
insert into result values(0,'历史',22,6);
insert into result values(0,'化学',69,2);
insert into result values(0,'Java',79,5);
insert into result values(0,'Java',67,6);
insert into result values(0,'政治',97,2);
insert into result values(0,'物理',76,6);
insert into result values(0,'物理',82,2);
insert into result values(0,'化学',56,4);

DQL语句 

update student set userName='流氓+渣男' where id=5;
begin; #开启事务
update student set userName='流氓and渣男' where id=5;
select * from student where id=5;
update student set userName='独臂大傻雕渣男' where id=4;
select * from student where id=4;
rollback; #通过undo log来完成还原操作的。
commit; #提交数据到硬盘,通过redo log完成的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新型中医揿针如何降血糖呢?

点击文末领取揿针的视频教程跟直播讲解 “新型针贴”专用揿针是为“埋针疗法”特制治的一种特殊针具,它是古代针刺留针方法的发展。具体来说,它是将特制针具刺入皮内,固定后留置一定时间,利用其持续微弱的刺激作用来治疗疾病的一…

做抖音小店需要注意什么?这几点很多人不知道,看完防踩坑

大家好,我是电商笨笨熊 抖音小店虽然推出了一段时间,但是依旧有新手玩家陆陆续续加入其中; 对于很多新手来说,只看到了其中红利,但却没有看到其中包含的一些运营小细节,且这些细节决定你店铺未来发展&…

现代城市化生活下,很多人有高薪,但是工作压力大,幸福度和自由度不一定高,从社会发展和哲学的角度来解读一下

在现代城市化生活中,高薪与工作压力、幸福度和自由度的关系,确实是一个值得从社会发展和哲学角度深入探讨的话题。 从社会发展角度看 经济驱动:随着社会的快速发展,经济成为推动社会进步的重要力量。人们为了追求更高的生活质量…

u段麦克风方案无线技术的特点与优势

UHF无线麦克风相比其他无线技术具有多个优势: 低成本和高效率:UHF无线麦克风系统可以实现低成本的解决方案,特别是在短距离应用中,如教室中的助听设备。这种系统不仅成本较低,还能提供与电话质量相近的声音质量&#…

【redis】Redis数据类型(四)Set类型

目录 Set类型介绍使用场景 Set类型数据结构set的单个元素的添加过程IntSet哈希表内存结构 常用命令SADD示例 SREM示例 SMEMBERS示例 SISMEMBER示例 SCARD示例 SMOVE示例 SPOP示例 SRANDMEMBER示例 SINTER示例 SINTERSTORE示例 SUNION示例 SUNIONSTORE示例 SDIFF示例 SDIFFSTORE…

常用邮箱汇总

01. 临时邮箱 24小时邮箱:http://24mail.chacuo.net60分钟邮箱:https://www.guerrillamail.com/zh/10 分钟邮箱:https://linshiyouxiang.net/10 分钟邮箱:https://temp-mail.org/zh/10 分钟邮箱:https://10minutemail…

webrtc应用举例

WebRTC(Web Real-Time Communication)是一种用于在Web浏览器和移动应用程序之间进行实时通信的开放标准。以下是一些WebRTC应用的例子: 1. **WebRTC电话**:用户可以通过Web浏览器进行点对点的音频和视频通话,无需安装…

每日一题(PTAL2):列车调度--贪心+二分

选择去维护一个最小区间 代码1&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n;cin>>n;int num;vector <int> v;int res0;for(int i0;i<n;i){cin>>num;int locv.size();int left0;int rightv.size()-1;while(left<…

c语言之枚举

枚举是将一个变量的可能的值都列出来&#xff0c;但是对应的值只能是其中的一个。 枚举创建的方式 enum 枚举类型名&#xff08;值1&#xff0c;值2&#xff0c;值3&#xff0c;值n&#xff09; 如何定义枚举变量 enum 枚举类型 变量名 示例代码如下 #include<stdio.h…

Go语言fmt包深度探索:格式化输入输出的利器

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f3ad; 引言一、基础输出函数fmt.Print与fmt.Println&#x1f4cc; fmt.Print&#xff1a;纯粹输出&#xff0c;不带换行&#x1f4cc; fmt.Println&#xff1a;输出后自动添加换行符 二、格式化输出fmt.Printf&…

在Java中如何有效地处理内存泄露

在Java中&#xff0c;处理内存泄露有多种方法&#xff0c;以下是其中三种常见的方法及其原理和适用场景&#xff1a; ## 1. 合理使用垃圾回收机制 Java中的垃圾回收机制&#xff08;Garbage Collection&#xff0c;GC&#xff09;是一种自动化的内存管理技术&#xff0c;它可以…

代码随想录day19day20打卡

二叉树 1 二叉树的最大深度和最小深度 最大深度已经学习过了&#xff0c;实质就是递归的去判断左右子节点的深度&#xff0c;然后对其进行返回。 附加两个学习的部分&#xff1a; &#xff08;1&#xff09;使用前序遍历的方法求解 int result; void getdepth(TreeNode* nod…

保研面试408复习 1——操作系统、计网、计组

文章目录 1、操作系统一、操作系统的特点和功能二、中断和系统调用的区别 2、计算机组成原理一、冯诺依曼的三个要点二、MIPS&#xff08;每秒百万条指令&#xff09;三、CPU执行时间和CPI 3、计算机网络一、各个层常用协议二、网络协议实验——数据链路层a.网络速率表示b.数据…

【stm-3】定时器定时中断定时器外部时钟

1.定时器定时中断 (1)main.c #include "Device/Include/stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "timer.h" uint16_t Num; int main(void) {OLED_Init();Timer_Init();OLED_ShowString(1,1…

酷得智能电子方案 早教学习机

早教学习机是用户友好的&#xff0c;易于操作&#xff0c;同时要确保内容的科学性和适宜性&#xff0c;以促进儿童的健康成长和智力发展。 通常包括以下几个方面&#xff1a; 1.年龄分级内容&#xff1a;软件会根据儿童的不同年龄段提供相应的教育内容&#xff0c;从新生儿到…

Qt---day2-信号与槽

1、思维导图 2、 拖拽式 源文件 #include "mywidget.h" #include "ui_mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::MyWidget) { ui->setupUi(this); //按钮2 this->btn2new QPushButton("按钮2",th…

Nodejs-内存指标

内存指标 一般而言&#xff0c;变量回自动释放回收&#xff0c;但是也会存在一些应该回收但是没有回收的对象&#xff0c;这会导致内存占用无线增长。一旦达到v8的内存限制&#xff0c;就会造成内存错误 查看内存使用情况 查看进程的内存占用 process.memoryUsage() {rss: …

25考研英语长难句Day02

25考研英语长难句Day02 【a.词组】【b.断句】 如果你是你讲话对象中的一员&#xff0c;你就能了解你们大家共同的经历和问题&#xff0c;你也可以顺便评论一下食堂里难吃的食物或董事长臭名昭著的领带品味。 【a.词组】 单词解释addressv. 演说&#xff0c; 演讲&#xff1b;…

Linux学习之路 -- 文件 -- 文件描述符

前面介绍了与文件相关的各种操作&#xff0c;其中的各个接口都离不开一个整数&#xff0c;那就是文件描述符&#xff0c;本文将介绍文件描述符的一些相关知识。 目录 <1>现象 <2>原理 文件fd的分配规则和利用规则实现重定向 <1>现象 我们可以先通过prin…

“视频号小店”和“抖音小店”新手做电商选择哪个更好?

哈喽~我是电商月月 做电商的老商家和&#xff0c;准备做电商的新手朋友都知道现在最大的电商平台就是“抖音小店” 但抖店小店毕竟发展了四年&#xff0c;流量多&#xff0c;商家也多&#xff0c;最近又崛起了一个新黑马“视频号小店” 那到底去哪个平台发展才有前景呢&…