我这里有这个表技能
(id =自动增量和主键)
:
| id | skill |
--------------
| 1 | PHP |
--------------
在此表中,我拥有 PHP
技能。要插入新技能,我需要检查该技能是否已存在。我已经尝试过这种方法,但它不起作用。我对 MySQL/SQL 不太熟悉:
不应该工作:
INSERT INTO skills (`skill`) VALUES (`PHP`) ON DUPLICATE KEY UPDATE `skill` = `PHP`;
应该有效:
INSERT INTO skills (`skill`) VALUES (`HTML`) ON DUPLICATE KEY UPDATE `skill` = `HTML`;
最佳答案
这是正确的命令:
INSERT INTO skills (`skill`)
VALUES ('PHP') -- fixed the backticks
ON DUPLICATE KEY UPDATE `skill` = 'PHP';
我认为反引号是一个拼写错误。它们应该是单引号。
虽然我会把它写成:
INSERT INTO skills (skill)
VALUES ('PHP')
ON DUPLICATE KEY UPDATE skill = VALUES(skill);
只有当您对技能
有独特的限制时,这才会“起作用”:
create unique index unq_skills_skill on skills(skill);
关于mysql - 插入到尚不存在的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53516674/