2014-10-08 26 views
-1

我有一個自動遞增ID列的表。我想這樣總有1

的ID值。例如我的數據庫自動更改ID值:SQL ID值自動向上移動

ID Firstname Lastname 

1 John  Smith 
2 Charlie Jacobs 
3 Jason  young 

我想這麼說,如果我刪除行ID 1,則行ID 2更改ID爲1,行ID 3名更改ID 2.像這樣:

ID Firstname Lastname 

1 Charlie Jacobs 
2 Jason  young 

我希望能夠再加入名稱後,從ID 3.將進行優選的我在想,如果有一個設置在SQL中可以自動執行此操作。如果這是不可能的,那麼PHP腳本將是第二好的。

+6

唯一的問題是 - **爲什麼**? – 2014-10-08 19:38:37

+2

不要對自己做這件事。外鍵呢?你爲什麼在乎身份的價值? – 2014-10-08 19:39:01

+6

你爲什麼要這樣做?一旦記錄被寫入,標識符應該永遠不會改變。 – Siyual 2014-10-08 19:39:02

回答

0

這不是一件正確的事情。你爲什麼想這樣做?這會弄亂你的主鍵值。所以不要這樣做。即將到來的解決方案

如果您在窗體中顯示此內容,只需爲您的select語句中的每一行生成行號。它們之間沒有任何差距。 MYSQL Generating Row Numbers

SELECT @row_number:[email protected]_number+1 AS row_number,db_names FROM mysql_testing, 
(SELECT @row_number:=0) AS t 
ORDER BY db_names;