我有一个约200行的样本表。该行包含一个列'order_number',其中包含一个等于行级别的数字,并且这些数字始终是连续的。例如,第一行具有1,第二行2,第三行3,第100行100等。数字必须始终是连续的。
所以,问题在于:如果我决定删除第50行,表格中会有一个空白(1-49,51-200);如何将行51-200向上移动,以便一切都变为1-199? “订单号”必须没有任何差距。
请帮忙。
感谢。
答案 0 :(得分: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。