如何在Oracle 10g中创建自动增量字段,如Sql Server

时间:2014-02-14 13:33:52

标签: oracle

1.我们可以使用SQL Server中的“身份(Start_Value,Increase)”关键字来自动增加字段。 所以,就像Oracle 10g中可用的任何关键词一样。 如果有人知道给我答案......

和 如果我们只想找到两个场之间的正差......

...等待 快

2 个答案:

答案 0 :(得分:0)

在10g中,您可以使用以下对象:表,序列和插入前行行级触发器:

  • 表T1带有数字列(模拟自动增量行为)
  • 序列SEQ_T1_ID1(用于生成数字)
  • 触发TRG_T1_ID1(自动填充列)

显然,你需要表空间上的CREATE TABLE,CREATE SEQUENCE和CREATE TRIGGER权限以及一些配额(可能无限制)。

CREATE TABLE T1
(ID1 NUMBER,
 TNAME VARCHAR2(128));

CREATE SEQUENCE SEQ_T1_ID1;

CREATE OR REPLACE TRIGGER TRG_T1_ID1
BEFORE INSERT ON T1
FOR EACH ROW
BEGIN
    SELECT SEQ_T1_ID1.NEXTVAL
    INTO :NEW.ID1
    FROM DUAL;
END;
/

答案 1 :(得分:0)

直到12c Oracle没有身份自动增量列这样的选项。

在互联网和特别是SO中有“如何做”这个:

How to create id with AUTO_INCREMENT on Oracle?

CREATE TABLE T (
  ID           NUMBER(10)
);

ALTER TABLE T ADD (
  CONSTRAINT T_pk PRIMARY KEY (ID));

CREATE SEQUENCE T_seq;

CREATE OR REPLACE TRIGGER T_bifer 
BEFORE INSERT ON T 
FOR EACH ROW

BEGIN
  SELECT T_seq.NEXTVAL
  INTO   :new.id
  FROM   dual;
END;
/