jul*_*lio 5 mysql sql insert mysql-error-1064
我熟悉以下命令的使用方法:
INSERT INTO mytable
SELECT *
FROM other_table
Run Code Online (Sandbox Code Playgroud)
当表格在布局方面相同时,这可以正常工作.
我想做的是:
INSERT INTO mytable
SELECT *
FROM other_table ON DUPLICATE KEY UPDATE
Run Code Online (Sandbox Code Playgroud)
这会因语法错误而失败:
MySQL错误:1064 - 您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行''附近使用正确的语法ON QUERY INSERT INTO mytable SELECT*FROM other_table ON DUPLICATE KEY UPDATE
我找不到任何描述这个的文档.
Ted*_*opp 11
您的陈述不完整:
INSERT INTO mytable
SELECT *
FROM other_table ON DUPLICATE KEY UPDATE
Run Code Online (Sandbox Code Playgroud)
该语法要求,你需要完成UPDATE通过列出要更新的列与价值观的一部分.
更新:
这应该适用于您的特定示例:
INSERT INTO mytable2 (id, name, `key`)
SELECT id, name, `key` FROM mytable b
ON DUPLICATE KEY UPDATE name = b.name
Run Code Online (Sandbox Code Playgroud)
变化是:
SELECT.key,因为"key"是MySQL中的保留字.