首次尝试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
相关产品推荐
相关产品推荐

