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以檢查重複值?
可能與:HTTP ://stackoverflow.com/a/5655448/929437 – aland
爲什麼行的ID對你來說很重要? – NDM
@NDM在這個例子中並不多,但在其他表中我們經常引用這些ID並且發現在表中只有少數條目時不得不記住7位數字是很煩人的。 – SkippyFlipjack