2011-07-17 48 views
0

我正在運行以下查詢...我遇到的問題是它正確保存id字段的行0-27,但它然後嘗試重複行0.爲什麼這是試圖重複第0行的任何想法?MySQL:在主鍵上插入重複更新問題

INSERT INTO 
     deal (`id`, `site_id`) 
     VALUES (NULL, 1) 
ON DUPLICATE KEY UPDATE `id` = NULL,`site_id` = 1 
+1

什麼是交易表?查詢的目的是什麼? –

+0

是* site_id * UNIQUE?如果不是'ON DUPLICATE KEY'的重點?每個INSERT都會得到一個新的* id *。 – nobody

回答

2

manual

您也可以明確指明NULL或0到列生成的序列號。

因此,有效地輸入(0,'whatever')被視爲('the next autoincrement id','whatever')。就MySQL而言,沒有重複的關鍵問題。您可以通過使用NO_AUTO_VALUE_ON_ZERO來繞過此操作。請注意,不建議使用0作爲標識符。