Oracle通过触发器实现主键自增

Oracle通过触发器实现主键自增

1. 创建sequence

右键new一个Sequence,初始化参数如下图:
Oracle通过触发器实现主键自增_第1张图片
sequence名称为 MY_SEQ

2. 创建表tab_user

表包含三个字段:id, username, password ,结构如下图:

Oracle通过触发器实现主键自增_第2张图片

3. 创建触发器

tab_user>Trigger>右键new

Oracle通过触发器实现主键自增_第3张图片

输入触发器名称,和触发方式

Oracle通过触发器实现主键自增_第4张图片

点击ok,然后在begin和end中间插入:select MY_SEQ.Nextval into:new.id from DUAL;

其中MY_SEQ为sequence,:new.id给 新的id赋值,DUAL为一个固定值。


完整触发器代码为:

create or replace noneditionable trigger tri_user
  before insert
  on TAB_USER 
  for each row
declare
  -- local variables here
begin
  select MY_SEQ.Nextval into:new.id from DUAL;
end tri_user;

4. 插入数据

insert into tab_user(username,password) values('admin','admin');
insert into tab_user(username,password) values('fgz','fgz');
insert into tab_user(username,password) values('test','test');
COMMIT;

id值将会自动增长,结果如下:

Oracle通过触发器实现主键自增_第5张图片

? 使用的工具为pl/sql developer

你可能感兴趣的:(oracle)