我正在使用此mysql查询

insert into table (vin,name,city,dob) values ('der12','john','city name','2016-17-10')  ON DUPLICATE KEY UPDATE name='john'


表结构是

id - bigint -primary key
vin - varchar
name - varchar
city - varchar
dob - varchar


所以在这里我有id作为bigint和autoincreament,并且vin也不能重复,我需要检查的是
如果vin已经在表中,则更新记录或如果一切相同则不做任何事情,如果vin是不同的。
插入记录。

我也尝试让vin变得独一无二

ALTER TABLE table ADD UNIQUE (vin)


但是问题是添加后,当我运行查询时,它显示了一些重复性错误,而不是更新或忽略它。

需要帮助。

提前致谢

最佳答案

据我了解,如果“ vin”不同,则要添加记录,否则请保留以前的记录。

您可以获取以“ vin”为“ john”或当前正在插入的任何值的记录数。如果count为“ 0”,则插入记录,否则不执行任何操作。

关于mysql - 每次在重复 key 更新上插入记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40482745/

10-12 16:27