2012-03-09 38 views
0


 我有一個約200行的示例表。該行包含一個'order_number'列,其中包含一個等同於該行級別的數字,並且這些數字始終是連續的。例如,第一行有1,第二行2,第三行3,第100行100等。這些數字必須始終是連續的。

因此,問題在於:如果我決定刪除第50行,表中會有一個空白(1-49,51-200);我如何將51-200行移動到一切都變成1-199? 「訂單號碼」一定沒有差距。

 請幫忙。

謝謝。在數據庫中連續重新排列列

回答

2

如果沒有其他表引用order_number,那麼您應該能夠做到;

DELETE FROM TableA WHERE order_id = 50;      -- What you just did 
UPDATE TableA SET order_id = order_id-1 WHERE order_id > 50; -- To rearrange 

簡單演示here

+0

謝謝......我完全忘了我可以做到這一點。 – 2012-03-09 15:00:11