You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL提示插入成功但数据未写入,无报错问题求助

MySQL插入提示行受影响但数据未实际插入的原因

你执行了以下INSERT语句:

insert into retail.customers_prac values("CO1001","Female",32,"London","2026-03-03","YES"); 

MySQL返回1 row(s) affected,但统计表行数发现插入前后一致,且无错误或警告,结合你的InnoDB表结构,可能的原因如下:

  • 事务未提交:InnoDB是事务型存储引擎,若你的会话关闭了自动提交(autocommit=0),插入操作仅在当前未提交的事务中生效。如果是在其他会话查询表行数,或者当前会话未执行COMMIT就重新连接,都看不到这条数据,导致行数统计一致。可以执行COMMIT后再查询验证。
  • 存在拦截插入的触发器:如果表上创建了BEFORE INSERT或AFTER INSERT触发器,可能在触发器中执行了ROLLBACK操作,或者逻辑上取消了插入(比如触发器条件判断后回滚)。这种情况下,MySQL会返回插入操作的受影响行数,但实际数据并未写入表中。可以执行SHOW TRIGGERS LIKE 'customers_prac';查看是否存在相关触发器。
  • 误执行了ROLLBACK操作:插入完成后,可能不小心执行了ROLLBACK回滚事务,导致刚插入的数据被撤销。此时虽然插入时提示受影响,但回滚后数据消失,行数不变。
  • 会话隔离级别导致的不可见性:如果当前会话的隔离级别设置为READ COMMITTED或更高,而插入操作未提交,其他会话查询时无法看到未提交的数据;若你是在另一个会话中统计行数,就会出现前后一致的情况。

内容的提问来源于stack exchange,提问作者VISHNUPRIYA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 13:20:00