Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Lajur Auto-Incrementing dalam Oracle: 11g lwn. 12c and Beyond?
Mencipta Lajur Peningkatan Auto dalam Oracle 11g dan Seterusnya
Pangkalan data Oracle tidak mempunyai konsep lajur kenaikan automatik sehingga versi 12c. Walaupun begitu, adalah mungkin untuk meniru tingkah laku ini dalam Oracle 11g menggunakan urutan dan pencetus.
Kaedah untuk Oracle 11g
Mulakan dengan mentakrifkan jadual dengan kunci utama lajur:
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;
Seterusnya, buat pencetus yang menjana ID unik nilai untuk sisipan baharu:
CREATE OR REPLACE TRIGGER dept_bir BEFORE INSERT ON departments FOR EACH ROW BEGIN SELECT dept_seq.NEXTVAL INTO :new.id FROM dual; END;
Kemas kini untuk Oracle 12c dan Kemudian
Oracle 12c memperkenalkan jenis lajur IDENTITI asli, menyediakan ciri kenaikan automatik sebenar:
create table t1 ( c1 NUMBER GENERATED by default on null as IDENTITY, c2 VARCHAR2(10) );
Sebagai alternatif, anda boleh menentukan permulaan dan kenaikan tersuai nilai:
create table t1 ( c1 NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1), c2 VARCHAR2(10) );
Atau, dalam Oracle 12c dan lebih tinggi, gunakan jujukan sebagai nilai lalai:
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) );
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Lajur Auto-Incrementing dalam Oracle: 11g lwn. 12c and Beyond?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!