我有mysql数据库。我需要在我的桌子上更新国家列表。我桌上有一些国家。如果不存在,我需要检查该国家并插入表格。我使用以下sql脚本。但这不起作用。执行此代码时,它将复制记录。
MySQL查询:
INSERT INTO `moneyexpressstore`.`countries` (`Name`, `Code`, `CurrencyId`) VALUES
('Australia', 'au', NULL) ON DUPLICATE KEY UPDATE Name=VALUES(Name)
感谢,
答案 0 :(得分:0)
查看mysql https://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html
的文档INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
答案 1 :(得分:0)
首先确保您的数据库在列countries
上没有重复记录,然后执行此
CREATE UNIQUE INDEX countriesindex ON countries (Name(50))
50是索引搜索“唯一”值的字符数。例如,如果该数字为3,那么这两个不同的字符串将被视为相同,并且1062 Duplicate Entry
会出现abcHELLO=abcWORLD
错误,在您的情况下,它会强制UPDATE
而不是INSERT
{1}}。
如果您收到1062错误,则表示您的数据库中存在重复项,因此请将其删除并重试。
在此之后,您的查询将执行得很好并且将在“名称”
上更新而不是重复答案 2 :(得分:0)
试试这个:
insert into `moneyexpressstore`.`countries` (id, `Name`, `Code`, `CurrencyId`) values(NULL,'Australia', 'au', NULL) on duplicate key update name=values(name)
请参阅此链接:
http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html