ID VALUE
0 2
1 3
2 0
当删除id为0的第一条记录时,第二条记录应为0,第三条记录应为1.
导致:
ID VALUE
0 3
1 0
当删除id为1的记录时,第三个记录应为1。
ID VALUE
0 2
1 0
删除哪一项连续订单应从0开始维持。
此ID不是主键。应该在触发器中删除。
答案 0 :(得分:0)
不要在触发器中修改同一个表,否则会遇到变异表问题。
另一种方法是使用存储过程并在删除记录后调用它。只需选择大于已删除ID的所有ID,然后从中减去1。
PROCEDURE UPDATE_IDS(deletedID in Number) IS
BEGIN
UPDATE table t
SET ID = ID - 1
WHERE ID > deletedID;
END UPDATE_IDS;