2011-12-09 99 views
2

你好,有可能將刪除的自動增加的主鍵保存在我的數據庫中。例如Mysql重新啓動自動int主鍵

我有 名_ID

如果刪除主鍵4和I插入再次I的主鍵插入應該是四個。

左右。名稱1 2 3 4 5


我已刪除的主鍵5(名稱1 2 3 4)


我添加了一個數據主鍵應該再次5中未6.謝謝!

+3

重要嗎? – ajreal

+3

爲什麼你想要一個*自動*增量字段,如果你不想自動增加它?如果刪除鍵號2,你希望發生什麼? – spider

回答

2

自動生成的字段在這些情況下總是有空白。

如果您有用於存儲ID = 4,ID = 5的行的審計或歷史記錄表,該怎麼辦?然後再刪除它們?你如何區分行?

在你的例子中,你只刪除了最後一行?你是什​​麼刪除ID = 1?那又怎麼樣?

也就是說,它們是唯一的,以該表只是內部的數字(和喜歡的審計者的任何相關表格):沒有外部的意義應附

+0

謝謝!我不會使用這種方法,然後看到缺點。 :)) –

+0

@rjtubera:與自動增長領域的差距是標準和預期的行爲:沒有缺點。 「滾動你自己」將會有更多的缺點,並以淚水結束 – gbn

2

與其他的意見和答案在這裏,我不會推薦,特別是如果在自動遞增列中的數據被外部參照,但你可以通過ALTER TABLE查詢下一個自動增量數設置爲一個特定的值

ALTER TABLE T_YourTable AUTO_INCREMENT=4 

你也可以刪除列,然後重新添加列具有相同的屬性(如果您有很多行,這可能很昂貴)。

0

爲什麼?

它只是一個唯一的標識符。

您還會在數據庫集羣和回滾與提交的事務重疊的插入事務時發生差距 - 而不僅僅是在刪除數據時。

填補空白的機制將是複雜的,緩慢的和難以維護的 - 而且不是必需的。