MySQL中怎么实现事物回滚
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这期内容当中小编将会给大家带来有关MySQL中怎么实现事物回滚,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。事物的概念:事物由一个单独单元的一个或多个sql语句组成
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
网络安全投资逻辑
松江区媒体软件开发管理方法
原神小米是什么服务器
服务器 设备税
查询数据库定时任务
数据库包含哪两种设计特性
nec服务器
沈阳软件开发公司招聘
棱镜计划及网络安全的看法
重庆嘉思互联网科技工作室
2017年网络安全法试题答案
国家网络安全基地孵化器参展
搭建青龙豆子服务器
共享单车中的网络技术
服务器访问虚拟磁盘
面试软件开发职位要注意哪些
联通dns服务器地址设置多少
淘宝产品数据库分类
公司搭建网络安全体系
南通智能软件开发价格多少
山东枣庄服务器
九台区网络技术诚信服务
软件开发测试管理规范
个人服务器 购买
上海软件开发服务平台
学校 网络安全工作方面
mysql数据库字符编码更改
敦化淘宝客软件开发
平面设计与网络技术的区别
计算机网络技术为什么这么难