0

我有一个(Oracle)序列,用于为插入数据库表的新订单分配订单号。它从 1 开始,每个新订单增加 1。

我有一个新要求,说订单号应该从 10000000(一千万)开始,所以我想更新所有现有记录(通过添加 10000000;订单 1 将是 10000001,订单 7002 将是 10007002 等),并且还会增加Oracle 序列,以便下一个值正确。

我打算简单地运行这个脚本:

DECLARE
  l_temp NUMBER;
BEGIN
  FOR idx IN 1..10000000 LOOP
    SELECT MY_ORDER_SEQ.nextval
      INTO l_temp
      FROM dual
    ;
  END LOOP;
END;
/

但我真的不知道运行需要多长时间。

有一个更好的方法吗?

4

1 回答 1

1

只需放下并创建新的

drop sequence MY_ORDER_SEQ

CREATE SEQUENCE MY_ORDER_SEQ
 START WITH     10000000 -- or your last value
 INCREMENT BY   1
 NOCACHE
 NOCYCLE;
于 2019-08-01T13:47:45.057 回答