同时使用序列和触发器来生成一个自增字段CREATE SEQUENCE SEQname INCREMENT BY 1 START WITH 1 MAXVALUE 99999999 / CREATE TRIGGER TRGname BEFORE INSERT ON table_name REFERENCING NEW AS :NEW FOR EACH ROW Begin SELECT SEQname.NEXTVAL INTO :NEW.FIELDname FROM DUAL; End;
Creating a Sequence: ExampleThe following statement creates the sequence customers_seq in the sample schema oe. This sequence could be used to provide customer ID numbers when rows are added to the customers table.CREATE SEQUENCE customers_seq START WITH 1000 INCREMENT BY 1 NOCACHE NOCYCLE;The first reference to customers_seq.nextval returns 1000. The second returns 1001. Each subsequent reference will return a value 1 greater than the previous reference.
INCREMENT BY 1
START WITH 1
MAXVALUE 99999999
/
CREATE TRIGGER TRGname
BEFORE INSERT ON table_name
REFERENCING
NEW AS :NEW
FOR EACH ROW
Begin
SELECT SEQname.NEXTVAL
INTO :NEW.FIELDname
FROM DUAL;
End;
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;The first reference to customers_seq.nextval returns 1000. The second returns 1001. Each subsequent reference will return a value 1 greater than the previous reference.
所以可以用序列的方式来代替自动增长
至于序列怎么写 1楼说的很清楚
INCREMENT BY 1
START WITH 1
MAXVALUE 99999999select sid.nextval, --取下一个序列
sid.currval --取当前序列
from dual;