我看到过这个问题(见底部的链接),但我似乎无法找出答案。问题在于我使用自动增量ID(主键)插入数据,另一个字段使用UNIQUE索引来避免重复。这是有效的,但是当这种情况发生时,ID会增加,尽管没有数据被存储。防止重复条目自动增加
最好删除自动增量,并自己处理它,选择最大(ID)?
目前,我已经尝试了几种策略,使其作为是工作,包括INSERT IGNORE
和INSERT ... ON DUPLICATE KEY UPDATE
我最近尝试使用下面的查询:
INSERT INTO
content(field1, field2)
SELECT(:field1, :field2) FROM DUAL
WHERE NOT EXISTS(
SELECT field1, field2
FROM content
WHERE field1 = :field1
)
相关
- In MySQL, when there is a "duplicate entry" error, how do I prevent the primary key from auto incrementing?
- SQL Server - How to insert a record and make sure it is unique
where和order倒不如只是为了让它走了。这种“虚增”不会伤害任何人。顺便说一下,1000个问题的重复。 – 2013-03-23 15:22:48
在某些情况下,这样的“假增量”可能不是问题,但我有大量的数据需要解析,并且每隔30个我就插入大约1条记录。问题更多地集中于避免这种情况的方法,即我现在正在使用的查询或手动处理auto_increment。 – aurbano 2013-03-23 15:28:55
您应该回答您自己的问题(并接受),而不是使用解决方案更新它,如以下网址中所示:http://stackoverflow.com/help/self-answer – jabaldonedo 2014-02-25 12:31:05