【问题标题】:Truncate data and if insert new row column increment from 1截断数据,如果从 1 插入新行列增量
【发布时间】:2013-02-02 11:12:18
【问题描述】:

我有两行表,其中一个 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;

【问题讨论】:

    标签: oracle


    【解决方案1】:

    Oracle 序列是一个单独的对象,不与表连接。如果您需要在截断表后开始序列,则需要更改序列。看看这里:How do I reset a sequence in Oracle?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 2015-05-28
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 2014-01-09
      相关资源
      最近更新 更多