Như Orbman nói, cách tiêu chuẩn để làm điều đó là với một chuỗi. Những gì hầu hết mọi người cũng làm là cặp vợ chồng này với một kích hoạt chèn. Vì vậy, khi một hàng được chèn mà không có ID, trình kích hoạt sẽ kích hoạt ID cho bạn từ chuỗi.
CREATE SEQUENCE SEQ_ROLLINGSTOCK_ID START WITH 1 INCREMENT BY 1 NOCYCLE;
CREATE OR REPLACE TRIGGER BI_ROLLINGSTOCK
BEFORE INSERT ON ROLLINGSTOCK
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
select SEQ_ROLLINGSTOCK_ID.NEXTVAL
INTO :NEW.ID from dual;
END;
Đây là một trong số ít trường hợp sử dụng trình kích hoạt trong Oracle có ý nghĩa.
Nguồn
2010-04-07 04:12:14
có thể trùng lặp của http://stackoverflow.com/questions/317001/autoincrement-in-oracle – DCookie