Oracle通过触发器实现主键自增
1. 创建sequence
右键new一个Sequence,初始化参数如下图:
sequence名称为 MY_SEQ
2. 创建表tab_user
表包含三个字段:id
, username
, password
,结构如下图:
3. 创建触发器
tab_user>Trigger>右键new
输入触发器名称,和触发方式
点击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值将会自动增长,结果如下:
? 使用的工具为pl/sql developer