PHPMyAdmin执行INSERT...ON DUPLICATE KEY UPDATE语句报错求助
问题分析与解决
哦,我一眼就看出问题所在了——MySQL完全支持ON DUPLICATE KEY UPDATE语法,你的报错纯粹是因为语句里的语法错误!
你错误地在ON DUPLICATE KEY UPDATE后面加了一对括号,这是不符合MySQL语法规范的。正确的写法是直接列出需要更新的字段和对应值,用逗号分隔即可,不需要包裹括号。
修正后的完整SQL语句
INSERT INTO `stationlist`(`ID`, `Comd`, `Stn`, `Pin`, `Location`) VALUES (Null, 'aaa','bb',11,'ddd') ON DUPLICATE KEY UPDATE Comd = 'abcd', Stn = 'AFSB', Pin = 999, Location = 'Delhi';
额外注意事项
- 要确保你的
stationlist表存在主键或唯一索引,否则ON DUPLICATE KEY UPDATE不会生效。比如如果ID是自增主键,那么当插入的ID值重复时才会触发更新逻辑;如果是其他字段(比如Stn)需要触发重复更新,要给该字段添加唯一约束。 - 保持赋值语句的格式清晰,每个字段赋值后用逗号分隔,最后一个赋值语句可以省略逗号(但加上也不影响)。
内容的提问来源于stack exchange,提问作者Raky
相关产品推荐
相关产品推荐

