我看到過這個問題(見底部的鏈接),但我似乎無法找出答案。問題在於我使用自動增量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