我有这个查询:
INSERT INTO abilities_usage (id, name, usage)
VALUES
("5467", "naga_siren_mirror_image", "1")
ON DUPLICATE KEY UPDATE id='5467';
SQL响应:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 '使用率'附近的值(“5467”,“naga_siren_mirror_image”,“1”)ON 我在第1行重复更新密钥更新
为什么?
答案 0 :(得分:3)
您必须使用单个引号来表示字符串文字:
INSERT INTO abilities_usage (id, name, usage) VALUES
('5467', 'naga_siren_mirror_image', '1') ON DUPLICATE KEY UPDATE id='5467';
答案 1 :(得分:1)
如果密钥存在,分配给密钥是没有意义的...我想你想要的是:
INSERT INTO abilities_usage (id, name, `usage`)
VALUES ('5467', 'naga_siren_mirror_image', '1')
ON DUPLICATE KEY UPDATE name = 'naga_siren_mirror_image', `usage` = '1';
假设id
当然是主键。 (如果它是一个正确的数字类型,根本不要使用单引号。)
此外,usage
是MySQL中的reserved keyword,您需要将其包含在后面的标记中。