千家信息网

MySQL中怎么实现事物回滚

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关MySQL中怎么实现事物回滚,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。事物的概念:事物由一个单独单元的一个或多个sql语句组成
千家信息网最后更新 2026年11月03日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安全错误 数据库的锁怎样保障安全 互联网科技公司排名 互联网科技金融 成都互联网科技公司 汉立互联网科技有限公司联系电话 科技互联网的估值 岳阳华臻互联网科技有限公司 互联网媒体平台算高科技产业 中国互联网十大科技股排名 乌鲁木齐新华智原互联网科技学校 佛山市拉法互联网科技有限公司 科技互联网的核心竞争力 北京市互联网新科技 工业互联网科技成果转化 互联网科技包装股份有限公司上市 工业互联网科技创业 中国科技和美国互联网 悟空问答互联网科技 好易买互联网科技 互联网的科技体现在哪里 知域互联网科技有限公司官网 互联网科技公司 互联网科技英文翻译 互联网科技股有哪些 河南猎农互联网科技有限公司 互联网科技与大数据专业 互联网科技和信息 互联网风格科技公司名称 恒生科技指数 中概互联网 瑞安市蟠桃会互联网科技有限公司 利用互联网等科技手段
0