How to create id with AUTO_INCREMENT on Oracle?

来源:互联网 发布:php等腰三角形 编辑:程序博客网 时间:2024/06/10 01:11

http://stackoverflow.com/questions/11296361/how-to-create-id-with-auto-increment-on-oracle

There is no such thing as "auto_increment" or "identity" columns in Oracle. However, you can model it easily with a sequence and a trigger:

Table definition:

CREATE TABLE departments (  ID           NUMBER(10)    NOT NULL,  DESCRIPTION  VARCHAR2(50)  NOT NULL);ALTER TABLE departments ADD (  CONSTRAINT dept_pk PRIMARY KEY (ID));CREATE SEQUENCE dept_seq;

Trigger definition:

CREATE OR REPLACE TRIGGER dept_bir BEFORE INSERT ON departments FOR EACH ROWBEGIN  SELECT dept_seq.NEXTVAL  INTO   :new.id  FROM   dual;END;/

UPDATE: IDENTITY column is now available on Oracle 12c version,see this:

CREATE TABLE t1 (c1 NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,                    c2 VARCHAR2(10));

http://docs.oracle.com/javadb/10.8.1.2/ref/rrefsqlj37836.html

0 0