我想实现INSERT ... ON DUPLICATE KEY UPDATE
解决方案,如SQL文档here中所述。
这是我的表
|Table|
|Name (unique)|Description|
|Entry1|{empty}|
我想创建一个名为Entry1的新条目,其中包含描述' test',或者,如果存在,则更新Entry1的描述
这是我的查询
INSERT INTO Table (NAME, DESCRIPTION) VALUES ('Entry1', 'test')
ON DUPLICATE KEY UPDATE DESCRIPTION = 'test';
我在这里阅读了很多文档和其他主题,但我无法找到我做错的事。
错误消息是:
期待&#34 ;;",找到保留字" ON"第1行
答案 0 :(得分:2)
NAME
是保留的MySQL关键字。把它放在反引号中:
INSERT INTO Table (`NAME`, DESCRIPTION)
VALUES ('Entry1', 'test')
ON DUPLICATE KEY
UPDATE DESCRIPTION = 'test';
您可以查看keywords here。
的完整列表