很多商用数据库都有随着记录的插入而表的ID自动增长的功能,而oracle却没有这样的功能,但这并不影响我们的使用,我们可以用序列和触发器来实现这样的功能。
举一个实例来说明使用方法。
1、首先要建立一个序列,sql语句如下。
create sequence msg_SEQ
minvalue 1
maxvalue 999999999999999999
start with 601
increment by 1
cache 20;
2、建立触发器,
CREATE OR REPLACE TRIGGER "msgautoid_trig"
BEFORE INSERT ON msg
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
BEGIN
SELECT msg_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
END msgautoid_trig;
3、建立表
create table msg
(
ID NUMBER not null,
USERID NUMBER,
USERNAME VARCHAR2(200),
DEPTID NUMBER
)
这三步之后,你就可以使用自动增长的ID了。