本方法为使用SEQUENCE(序列)
例如有表temp_test结构为:
create table TEMP_TEST
(
id number,
nm varchar(10),
primary key(id) //id为主键,下面的方法把它设为自增字段
)
(
id number,
nm varchar(10),
primary key(id) //id为主键,下面的方法把它设为自增字段
)
1、建立自增序列TEMP_TEST_IDADD,命名任意,从1开始,每次加1
CREATE SEQUENCE TEMP_TEST_IDADD INCREMENT BY 1 START WITH 1;
2、在表temp_test上建立触发器如下
CREATE OR REPLACE TRIGGER T_TEMP_TEST_IDADD
BEFORE INSERT ON TEMP_TEST
FOR EACH ROW
BEGIN
SELECT TEMP_TEST_IDADD.NEXTVAL INTO :NEW.ID FROM DUAL;
END T_TEMP_TEST_IDADD;
BEFORE INSERT ON TEMP_TEST
FOR EACH ROW
BEGIN
SELECT TEMP_TEST_IDADD.NEXTVAL INTO :NEW.ID FROM DUAL;
END T_TEMP_TEST_IDADD;
测试效果:
往temp_test表中新增数据,执行以下语句两次
insert into TEMP_TEST(nm)
values('ss');
values('ss');
结果如下: