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

首次尝试MySQL事务遇语法错误:‘DELETE’位置无效,求解决

解决MySQL事务中的语法错误问题

嘿,我一眼就看出问题所在啦!你的START TRANSACTION语句没有以分号结尾,而且后面直接跟着注释和DELETE语句,MySQL的解析器会把这些内容当成START TRANSACTION的一部分,自然就会报“DELETE不是有效输入”的错误了。

修正后的完整事务代码

START TRANSACTION; -- 启动事务
-- 从classes表删除德国舰船
DELETE FROM classes WHERE country = 'Germany';
-- 向classes表添加美国新舰船
INSERT INTO `classes` (`class`,`type`,`country`,`numGuns`,`bore`,`displacement`)
VALUES ('SS Farkas','bb','USA','10','20','36000');
-- 提交事务(如果确认操作正确)
COMMIT;
-- 如果需要回滚,替换上面的COMMIT为ROLLBACK;

关键修正点说明

  • 给START TRANSACTION加上分号;,明确告诉MySQL这是一个独立的语句结束。
  • 把注释放在单独的行,这样代码结构更清晰,也避免解析器混淆语句边界。
  • 别忘了最后加上COMMIT;来提交事务,不然你的操作不会真正生效(如果是测试阶段,也可以用ROLLBACK;来撤销操作)。

另外,如果你用的是某些GUI客户端(比如Navicat、MySQL Workbench),确保开启了“允许执行多条语句”的选项,不然也可能出现类似的语法错误提示哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:46:06