2013-03-15 85 views
0

我們有一個表:INSERT更改auto_increment,但UPDATE不會更改auto_increment?

id int(11) auto_increment 
name varchar(255) 

AUTO_INCREMENT等於1 插入行:

INSERT INTO `projects` (`id` , `name`) VALUES ('350', 'project one'); 

現在auto_increment等於351 更新行:

​​

auto_increment仍然等於351。如果嘗試插入一行,則會發生錯誤:

#1062 - Duplicate entry '351' for key 1 

我們怎樣才能看到INSERT變化AUTO_INCREMENT和UPDATE不改變auto_increment

我的目標是更新行並設置id大於auto_increment

怎麼辦?

+0

您是否試圖在項目上創建某種版本ID? – 2013-03-15 11:41:51

+0

@BrianHoover,no。項目'ID'連接紙張合同,有時我需要更改數據庫中的ID以匹配紙張合同ID。 – Dador 2013-03-15 11:47:08

+0

使可更新ID成爲不是主鍵的另一個字段。 – 2013-03-15 11:52:55

回答

1

首先,你爲什麼要設置自動增量值?讓它做它的工作(線索 - 它是自動的)。

所以最好的解決方案是當你插入一行時,讓自動增量爲你選擇適當的值,並讓該值成爲該行生命期的不變量。

否則,只需從表格定義中刪除auto_increment位,並自行實施適當的系統。