sequence是单独使用的 如 create sequence s_1 increment by 1 start with 1 nomaxvalue minvalue 1;插入数据时 insert into table1 select s_1.nextval from dual;
oracle没有数据库自动增长的定义,只能用sequence
sequence+trigger正好有现成例子DROP SEQUENCE TEST.SEQ_STUDENT_ID;CREATE SEQUENCE SEQ_STUDENT_ID START WITH 5 MAXVALUE 1E27 MINVALUE 0 NOCYCLE NOCACHE NOORDER;CREATE TABLE STUDENT_INFO ( ID NUMBER NOT NULL, NAME VARCHAR2(50 BYTE), SEX VARCHAR2(10 BYTE), AGE NUMBER, BIRTHDAY DATE, PHONE VARCHAR2(20 BYTE) ) CREATE OR REPLACE TRIGGER TG_STUDENT_INFO BEFORE INSERT ON STUDENT_INFO REFERENCING OLD AS old NEW AS new FOR EACH ROW BEGIN IF :new.ID IS NULL THEN SELECT SEQ_STUDENT_ID.NEXTVAL INTO :new.ID FROM dual; END IF; END;
create sequence s_1
increment by 1
start with 1
nomaxvalue
minvalue 1;插入数据时
insert into table1
select s_1.nextval from dual;
START WITH 5
MAXVALUE 1E27
MINVALUE 0
NOCYCLE
NOCACHE
NOORDER;CREATE TABLE STUDENT_INFO
(
ID NUMBER NOT NULL,
NAME VARCHAR2(50 BYTE),
SEX VARCHAR2(10 BYTE),
AGE NUMBER,
BIRTHDAY DATE,
PHONE VARCHAR2(20 BYTE)
)
CREATE OR REPLACE TRIGGER TG_STUDENT_INFO
BEFORE INSERT ON STUDENT_INFO
REFERENCING OLD AS old NEW AS new
FOR EACH ROW
BEGIN
IF :new.ID IS NULL THEN
SELECT SEQ_STUDENT_ID.NEXTVAL
INTO :new.ID
FROM dual;
END IF;
END;