我有两行的表,其中一个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;
答案 0 :(得分:5)
Oracle序列是一个单独的对象,不与表连接。如果需要在截断表后启动序列,则需要更改序列。看看这里:How do I reset a sequence in Oracle?