2014-04-15 16 views
0

當我刪除一行並創建一個新行時,主鍵不會從1開始,而是在2以後。我想這就是我在創建auto_increment時的工作原理。但是,是否可以在主鍵上方更新主鍵時刪除其上的所有行。這是可能的SQL主鍵? (排在列表上)

如果這是不可能的,我可以讓另一列稱爲秩,並根據行的順序進行更新?

+0

如果你足夠努力,當然,但爲什麼要麻煩? –

回答

2

沒有理由關心主鍵id是什麼,所有重要的是它是唯一的。如果這是你的問題,我們使用排序查詢和東西來擔心訂單。

如果您的代碼始終要求主鍵在1..number_of_rows的範圍內,且沒有間隙,則應用程序的設計會有問題。

你不應該列名爲等級,它很容易只是做一個SELECT * FROM things ORDER BY some_column;

本不同的是,如果你需要計算的值,你的表進行排序。例如,訂單總數。爲了讓您按總數對訂單進行排序,他們需要在表格上計算出一個值。查詢仍然很簡單,就像我提到的那個。