MySQL中怎么实现事物回滚
发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,这期内容当中小编将会给大家带来有关MySQL中怎么实现事物回滚,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。事物的概念:事物由一个单独单元的一个或多个sql语句组成
千家信息网最后更新 2025年02月09日MySQL中怎么实现事物回滚
这期内容当中小编将会给大家带来有关MySQL中怎么实现事物回滚,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
事物的概念:
事物由一个单独单元的一个或多个sql语句组成,如果其中一个语句不能完成,整个单元就会回滚,所有影响到的数据将返回到事物开始以前的状态。因而,只有事物中的所有语句都成功执行才能说明这个事物被成功的执行。
这句话的本身没有什么问题,但是请看下面的案例
mysql事务中有两条insert语句,其中第二条语句是错误的,在运行完事务后,第一条仍然插进去了,代码如下。
//创建表:
CREATE TABLE `test_tab` (
`f1` int(11) NOT NULL ,
`f2` varchar(11) DEFAULT NULL ,
PRIMARY KEY (`f1`)
)
ENGINE=InnoDB
//执行事务:
START TRANSACTION;
INSERT INTO test_tab VALUES (1, '2');
INSERT INTO test_tab VALUES (1, '3');
COMMIT;
一开始认为只要把事务写出来,最后用commit提交一下,数据库会自动判断这些语句是否全执行成功,如果成功则把所有的数据插入到数据库,如果有一条失败就自动回滚至原始状态!显然我认为错了。
[SQL]START TRANSACTION;
受影响的行: 0
时间: 0.000s
[SQL]
INSERT INTO test_tab VALUES (1, '2');
受影响的行: 1
时间: 0.001s
[SQL]
INSERT INTO test_tab VALUES (1, '3');
[Err] 1062 - Duplicate entry '1' for key 'PRIMARY'
我们看结果可以知道INSERT INTO test_tab VALUES (1, '3');这一句因为主键冲突运行失败,从而这一条下面的commit也没有执行。
需要注意的是:这时已经开启了一个事务,并且已经执行了一条正确的插入语句,虽然没有体现在数据库中,但如果以后在该连接中又执行了一条commit 或begin或start transaction(新开一个事务会将该链接中的其他未提交的事务提交,相当于commit!)你会发现已经将刚才的INSERT INTO test_tab VALUES (1, '2');写进了数据库。
上述就是小编为大家分享的MySQL中怎么实现事物回滚了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
事物
事务
语句
数据
成功
数据库
影响
内容
单元
时间
状态
面的
分析
运行
原始
专业
中小
代码
内容丰富
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天谕手游服务器排行榜
网络安全实例代码
江苏创新软件开发管理方法
十五项互联网领先科技成果
根据模板生成数据库
宜昌市天气预报软件开发
基本计算机网络安全
spss数据库资料分析
江苏网络安全实训基地
数据库字段为必填字段
网络安全宣传周漫解
数据库技术按时间
图片处理 服务器
orcl数据库建设
uml属于那种软件开发方法
数据库库存如何存放
新的数据库设计工具
无线测温系统软件开发
安全模式怎么再进网络安全模式
上海质量网络技术服务材料
怎么重新设置服务器参数
数据库运维技术协议
数据库中as使用
软件开发框架怎么搭建
土木金华软件开发
网络安全保护的原则
网络技术工程业务员职责
字节跳动都用什么软件开发
网络安全ctf专用名词
虹口区多层软件开发参考价格