0

我有两行的表,其中一个 ID 自动递增,最后一行 ID 为 89。然后我截断表中的数据/行。然后我再次插入行。

但编号 ID 来自 90 而不是来自 1(一)。如果在 mysql 中,如果我在表自动增量中截断数据,则再次从 1(一)开始。那么在 oracle 中我想如何再次从一个 ID 自动增量。谢谢。

创建表时的以下步骤:

// create table;
CREATE TABLE tes (
  id NUMBER NULL,
  ip_address varchar2(25) NOT NULL
  PRIMARY KEY (id)
);

// and create increment;
CREATE SEQUENCE tes_sequence START WITH 1 INCREMENT BY 1;

// and create trigger;
CREATE OR REPLACE TRIGGER tes_trigger
BEFORE INSERT
ON tes
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT tes_sequence.nextval INTO :NEW.ID FROM dual;
END;
4

1 回答 1

5

Oracle 序列是一个单独的对象,不与表连接。如果您需要在截断表后开始序列,则需要更改序列。看看这里:如何在 Oracle 中重置序列?

于 2013-02-02T11:27:38.183 回答