Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle पर AUTO_INCREMENT के साथ आईडी कैसे बनाएं?

Oracle Oracle 11g के रूप में में "auto_increment" या "पहचान" कॉलम जैसी कोई चीज़ नहीं है . हालांकि, आप इसे अनुक्रम और ट्रिगर के साथ आसानी से मॉडल कर सकते हैं:

तालिका परिभाषा:

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 START WITH 1;

ट्रिगर परिभाषा:

CREATE OR REPLACE TRIGGER dept_bir 
BEFORE INSERT ON departments 
FOR EACH ROW

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

अपडेट करें:

IDENTITY कॉलम अब Oracle 12c पर उपलब्ध है:

create table t1 (
    c1 NUMBER GENERATED by default on null as IDENTITY,
    c2 VARCHAR2(10)
    );

या शुरुआती और वृद्धि मान निर्दिष्ट करें, पहचान कॉलम में किसी भी प्रविष्टि को रोकने के लिए भी (GENERATED ALWAYS ) (फिर से, केवल Oracle 12c+)

create table t1 (
    c1 NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1),
    c2 VARCHAR2(10)
    );

वैकल्पिक रूप से, Oracle 12 एक अनुक्रम को डिफ़ॉल्ट मान के रूप में उपयोग करने की भी अनुमति देता है:

CREATE SEQUENCE dept_seq START WITH 1;

CREATE TABLE departments (
  ID           NUMBER(10)    DEFAULT dept_seq.nextval NOT NULL,
  DESCRIPTION  VARCHAR2(50)  NOT NULL);

ALTER TABLE departments ADD (
  CONSTRAINT dept_pk PRIMARY KEY (ID));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle विभाजित तालिका

  2. पीएल/एसक्यूएल का उपयोग करके मैं एक ब्लॉब में फ़ाइल की सामग्री कैसे प्राप्त करूं?

  3. Oracle अनुप्रयोगों R12 में APPL_TOP का मंचन किया गया

  4. दैवज्ञ में संचयी योग बनाएं

  5. पीएल/एसक्यूएल के लिए यूनिट परीक्षण