2012-03-09 31 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