insert into tn (id) values( (select max(id) from tn)+1)试试
sequence + INSERT trigger 是最简单的方法了,其他的办法都不如这个好
触发器吧,还可以重复使用。 CREATE OR REPLACE TRIGGER set_checkup_no BEFORE INSERT ON checkup_history FOR EACH ROW DECLARE next_checkup_no NUMBER; BEGIN --Get the next checkup number from the sequence SELECT checkup_no_seq.NEXTVAL INTO next_checkup_no FROM dual; --use the sequence number as the primary key --for the record being inserted :new.checkup_no := next_checkup_no; END;
insert into tn (id) values( (select max(id) from tn)+1)这个方法不好 如果一旦删除纪录的话就会与主键冲突
感觉sequence + trigger还是挺方便的。其他方法不知道。
CREATE OR REPLACE TRIGGER set_checkup_no
BEFORE INSERT ON checkup_history
FOR EACH ROW
DECLARE
next_checkup_no NUMBER;
BEGIN
--Get the next checkup number from the sequence
SELECT checkup_no_seq.NEXTVAL
INTO next_checkup_no
FROM dual; --use the sequence number as the primary key
--for the record being inserted
:new.checkup_no := next_checkup_no;
END;
如果一旦删除纪录的话就会与主键冲突