2014-02-27 32 views
1

我有一個非常普通的MySQL表,帶有一個ID字段和幾個varchars。其中一個變量被設置爲一個UNIQUE KEY。奇怪的事情(對我來說)是每當我嘗試在UNIQUE字段中插入一個重複值時,插入被放棄(正確),但ID字段增加1,就好像插入已成功。下面是表的定義:爲什麼具有唯一鍵的表不斷增加ID字段?

CREATE TABLE `urls` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `url` varchar(512) DEFAULT NULL, 
    `label` varchar(150) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `url` (`url`) 
) 

我只有在表10個或12行,但ID序列是這樣的:1,2,3,5,12,15,30等由於插入的嘗試。

我應該以不同的方式設置唯一約束,還是必須在每個INSERT之前執行SELECT以檢查重複值?

+1

可能與:HTTP ://stackoverflow.com/a/5655448/929437 – aland

+0

爲什麼行的ID對你來說很重要? – NDM

+0

@NDM在這個例子中並不多,但在其他表中我們經常引用這些ID並且發現在表中只有少數條目時不得不記住7位數字是很煩人的。 – SkippyFlipjack

回答

相關問題