2
插入我的測試表,這種結構:MySQL在重複鍵更新PK AI
CREATE TABLE IF NOT EXISTS `test` (
`id_pc` int(11) NOT NULL AUTO_INCREMENT,
`id_vendor` int(11) NOT NULL,
`id_product` int(11) NOT NULL,
`test` int(11) NOT NULL,
PRIMARY KEY (`id_pc`),
UNIQUE KEY `id_vendor` (`id_vendor`,`id_product`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
正如你可以看到UQ鍵被設置在從PK是AI不同的2列。
簡單測試查詢:
INSERT INTO test(id_vendor, id_product, test)
VALUES (1,1,1) ON DUPLICATE KEY UPDATE test = 1;
我每次查詢運行它增加AUTO_INCREMENT值(所以沒有插件由,只更新)。這是正常的行爲還是我錯過了什麼?
'每次運行查詢時,都會增加AUTO_INCREMENT的值(因此不會插入,只會更新)。這是正常行爲嗎?還是我錯過了什麼?「首先,這是什麼意思?你是否實現了你想要的或想要的東西? – 2012-04-16 09:55:20
你想要發生什麼?你想不得不自動遞增鍵嗎?或者你希望它只在主鍵空閒時插入? – Anthony 2012-04-16 10:01:04
'差距'讓我感到擔憂。真正的表格有更多不同的結構 - 'x'附加字段經常改變,PK不是int(記錄數量適中)。所以通過經常更新表的自動增量值最終會超出範圍,並且新插入會發生什麼?所以我問的是這個mysql的正常行爲,當更新被執行時,每個'重複密鑰更新'增加這個值? – Bernard 2012-04-16 13:04:54