2013-12-20 33 views
0

我沒有得到Internet上的任何地方。我想要在行刪除時將行更改(更改行的id)。像:Mysql ID自動增量不爲null當行刪除篩選

 
id  value 
1  edt55tgge 
2  edgg545re 
3  gt5edbeg4 
4  e98i7thde 
5  455t44ede 

當我刪除行2和4,表應該成爲

 
id  value 
1  edt55tgge 
2  gt5edbeg4 
3  455t44ede 
我使用的ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,在這變得不可能

。 請幫忙。

+1

使用'AUTO_INCERMENT'時,這幾乎是不可能的。 –

+0

'id'是你的主要關鍵 - 這意味着所有其他FK的表都必須以某種方式神奇地'轉移'。更不用說對任何其他客戶持有不再冪等現在陳舊的代用鑰匙的不便。 – StuartLC

回答

2

這不是自動增量列的工作方式,你最好讓它自行排序。

添加另一個INT列,名爲my_id,並將其用於您想要執行的操作。

編輯:你也不能總是保證自動遞增值將是連續的,有些雲提供商有他們的自動增量鍵10或20的跳轉,因爲鏡像和集羣等...最好不要亂他們。

+0

你的意思是說我應該只用'INT NOT NULL PRIMARY KEY' – user3111151

+2

我認爲最好的做法是自動遞增主鍵,只需添加一個「額外的」INT列,並自己管理該列。保留自動增量欄來完成這件事。 – superphonic

0

您不應該修改自動增量。它是數據庫設計的一部分。您應該使用另一個列名作爲標識符。需要添加另一列。

如果你在php中使用這個,那麼最好爲列做一些代碼功能(而不是auto_incremented)。 謝謝