Oracle数据库学习笔记(二十七)

触发器实现主键自增

Posted by java阳旭 on May 22, 2020

Oracle数据库学习笔记(二十七)–触发器实现主键自增

分析

在用户做插入操作的之前,拿到即将插入的数据,给该数据中的主键列赋值。使用的行级触发器。

实现

1、创建触发器

create or replace trigger auid
before
insert
on person
for each row
declare

begin
  select s_person.nextval into :new.pid from dual;
end;

2、查询 person 表数据

SELECT *
FROM person;

3、使用 auid 实现主键自增

insert into person (pname) values ('a');
commit;
insert into person values (1, 'b');
commit;

insert into person values (1, ‘b’) – 表中已经有主键为 1 的记录了,执行完这条语句后原主键为 1 的记录不会被覆盖掉,而 b 值使用了新的序列所分配的值作为 pid 插入到了表中。