Oracle 通过触发器实现ID自增

  Oracle不像Mysql,SQLServer能够直接设置ID自增,但是可以通过触发器实现ID自增。

  1 创建测试表

  create table t_goods(id number primary key, good_name varchar2(50));

 

  2 创建序列 

  create sequence seq_goods_id
  start with 1
  increment by 1;

 

  3 创建触发器

  create or replace trigger tr_insert_good
  before insert on goods for each row
  begin
  select seq_goods_id.nextval
  into :new.id
  from dual;
  end;

 

  4 插入测试数据

  insert into t_goods(good_name)
  values('Transforms');

  insert into t_goods(id,good_name)
  values(2,'Lego');

  insert into t_goods(id,good_name)
  values(2,'Cube');

 

  5 查询测试结果

  

 

  可以看出我们使用触发器对ID设置自增之后,在插入数据的时候我们对ID赋值没有起到任何作用,它始终按照触发器设置的模式进行自增。

  

 

posted @ 2017-04-11 14:40  Latiny  阅读(1816)  评论(0编辑  收藏  举报