Oracle 手动实现自动增长列(Idnetity)

来源:互联网 发布:华为用户数据分区破坏 编辑:程序博客网 时间:2024/06/07 01:18

--Oracle自动增长字段

--一 建立表

 

create table myTable

(

  FID number primary key,

  FName varchar2(32),

  FAge number,

  FRemark varchar(1024)

)

--二 建立sequence

--CURRVAL=返回 sequence的当前值 

--NEXTVAL=增加sequence的值,然后返回 sequence 值

 

create sequence sa_autoinc

minvalue 1 --最小值

start with 1 -- 从1开始计数

increment by 1 -- 每次加几个

NOMAXVALUE -- 不设置最大值

nocache;-- 一直累加,不循环

--三 建立触发器

--1/

create or replace trigger insert_for_autoinc

  before insert on myTable

  for each row

  declare next_id number;

  -- local variables here

begin

  select sa_autoinc.nextval into next_id from dual;

end;

--2,

--Warning: 执行完毕, 但带有警告

--trigger insert_for_autoinc Compiled.

 

create or replace trigger insert_for_autoinc

  before insert on myTable

  for each row

  declare

begin

  select sa_autoinc.nextval from dual;

end

 

--四 用insert语句测试

insert into mytable values(sa_autoinc.nextval,'happe',32,'eeeeeee');--每次加2

insert into mytable values(sa_autoinc.CURRVAL,'happe',32,'eeeeeee');--每次加1

insert into mytable(fid, fname, fage, fremark) values(sa_autoinc.CURRVAL,'happe',32,'eeeeeee');--每次加1

 

--五 查看结果

 

select * from mytable;

原创粉丝点击