事物回滚成功,但是数据表新插入的数据没有变化

本文探讨了在数据库操作中遇到的事物回滚成功,但数据表新插入的数据未发生变化的问题。指出这可能是由于数据表使用的是MyISAM引擎而非InnoDB引擎导致的。文章提供了更改数据库引擎的方法,即通过执行ALTERTABLEtable_nameENGINE=InnoDB来解决此问题。

事物回滚成功,但是数据表新插入的数据没有变化

1. 可能是数据表的引擎为MyISAM,并不是InnoDB

解决方法:更改数据库引擎,ALTER TABLE table_name ENGINE=InnoDB

转载于:https://www.cnblogs.com/honeyJYY/p/10103762.html

### 如何在 MySQL 数据库中进行事务回滚 #### 开启事务 为了能够手动控制事务的提交或回滚,首先需要关闭自动提交模式并显式地开启一个事务: ```sql SET autocommit=0; START TRANSACTION; -- 或者使用 BEGIN; ``` 这一步骤使得后续的操作不会立即生效,而是等待最终决定是通过 `COMMIT` 来永久保存更改还是通过 `ROLLBACK` 取消这些更改。 #### 执行 DML 操作 在此期间可以执行各种数据操纵语言 (DML) 命令来修改表中的记录。例如插入纪录、更现有记录或是删除某些记录等操作[^1]。 #### 发生错误时回滚事务 当遇到逻辑上的错误或者其他异常情况而不希望刚才所做的任何改动被应用到实际的数据上时,则可以通过发出 ROLLBACK 命令来回退整个事务内的所有变更: ```sql ROLLBACK; ``` 此命令将会撤销自上次启动事务以来所做的一切未确认的变化,并恢复数据库至最初的状态,即回到事务开始之前的样子[^3]。 #### 成功完成后的提交 相反地,在确保所有的业务处理都已经顺利完成并且想要让这些变化成为永久性的部分时,则应当调用 COMMIT 将其正式写入磁盘存储之中;此时即使系统崩溃也不会丢失已提交的结果[^2]: ```sql COMMIT; ``` 需要注意的是,一旦某个事务已经成功提交了它的更改,就无法再对其进行回滚了——只有那些尚未被提交的事物才能够被安全地中止和撤消[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值