2013-04-24 273 views
2

我在本地MySQL服務器上開發了一個後端,一切正常。 當我將它移到生產服務器後,數據庫中的所有主鍵都自動遞增爲奇數(也可能是它自動遞增2) - 因此1,3,5,7,9 .. 。MySQL主鍵只能自動遞增奇數 - 爲什麼?

我知道可以更改自動增量,但我沒有那樣做。那麼我怎麼能檢查一下,看看是否設置了?

+1

的可能重複[更改通過增加步驟自動\ _increment場(HTTP://計算器。 com/questions/1686327/change-the-step-auto-increment-fields-increment-by) – 2013-04-24 15:30:55

回答

6

這很可能是auto_increment_increment改爲:http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html#sysvar_auto_increment_increment

您可以檢查這樣的:

mysql> SHOW VARIABLES LIKE 'auto_inc%'; 
+--------------------------+-------+ 
| Variable_name   | Value | 
+--------------------------+-------+ 
| auto_increment_increment | 10 | 
| auto_increment_offset | 1  | 
+--------------------------+-------+ 
2 rows in set (0.01 sec) 
+0

釘釘它! auto_increment_increment:2 ...系統管理員會將其設置爲默認值的任何原因? – 2013-04-24 15:50:52

+5

如果您正在運行主 - 主複製設置,這將防止您發生主鍵衝突。一臺服務器甚至是ID,另一臺服務器也是奇數ID。 – Wolph 2013-04-24 15:53:33

2

這可能是由於INSERT語句發送了兩次,但是IGNORE因此只導致奇數。

+1

你能證明這將如何工作嗎? – Strawberry 2013-04-24 15:31:31

+0

它使用相同的代碼在OP的測試服務器上運行良好,我寧願下注雙主複製設置。 – piotrm 2013-04-24 15:42:51

+0

這發生在所有的桌子上。儘管(儘早)我已經瞭解了這個問題。永遠不知道,忽略仍然增加主鍵 – 2013-04-24 15:50:06