在Ora(′ω`)cle中,動(dòng)生主鍵自動(dòng)??生成可以通過(guò)以下幾種方法實(shí)現:
1. 使用序列(Se(′Д` )quence)
1、成主創(chuàng )建序列:
CREATE SEQUENCE seq_nameSTART WITH 1INCREMENT BY 1;
2、中自創(chuàng )建表:
CREATE TABLE table_name ( id NUM??BER DEFAULT seq_name.NEXTVAL,動(dòng)生 name VARC(╬?益?)HAR2(50), PRIMARY KEY (id));
3、插入數據:
INSERT INTO table_name (name) VALUES ('張三');這樣,成主每次(′?`)插入數據時(shí),中自id字段會(huì )自動(dòng)使用序列的動(dòng)生下一個(gè)值。
2. 使用觸發(fā)器(Trigger)
步驟:
1、成主創(chuàng )建序列:??
CREATE SEQUENCE seq_nameSTART WITH 1INCREME??NT BY 1;
CREATE TABLE tab(◎_◎;)le_name ( id NUMBER,動(dòng)生(?????) name VARCHAR2(50), PRIMARY KEY (id));
3、創(chuàng )建觸發(fā)器:
CREATE OR REPLACE TRIGGE??R trg_nameBEFORE INSERT ON table_nameFOR EACH ROWBEGIN SELECT seq_name.NEXTVAL INTO :new.id FROM dual;END;/
4、成主插入數據:
IN??SERT INTO table_name (name) VALUES ('張三');這樣,每次插入數據時(shí),觸發(fā)器會(huì )自動(dòng)為id(′▽?zhuān)?字段賦值序列的下一個(gè)值。
3. 使用身份列(Identity Column)
從Oracle 12c開(kāi)始,可以使用身份列來(lái)實(shí)現主鍵自動(dòng)生成。
步驟:
CREATE TABLE table_name ( id NUMBER GENERATED ALWAYS AS IDENTITY, name VAR??CHAR2(50), PRIMARY KEY (id));
2、插入數據:
INSERT INTO table_(′?_?`)name (name) VALUES ('張三');這樣,每次插入數據時(shí),id字段會(huì )自動(dòng)遞增。