oracle实现自增长列

2011-09-14  黄桂梅 

--创建表
create table qdtest (
c_changd number(12,2),
c_jingq number(4,2),
c_shenf char(20),
c_test varchar2(20),
order_no number
);

--创建序列 seq_order_no,指定自增长列
Create sequence seq_order_no
     Start with 1
     Minvalue 1
     Nomaxvalue
     Nocycle
     Cache 100;

--创建触发器,设置触发条件
Create or replace trigger trigger_qdtest
  Before insert on qdtest  For each row
  Begin 
  Select seq_order_no.nextval into :new.order_no from dual;
end;
/
--创建触发器时报: 创建的触发器带有编译错误。此时可以敲show error 查看错误原因

--插入数据,order_no列会自动增长
insert into qdtest(c_changd,c_jingq,c_shenf,c_test) values(    555555555.12,1.01,'test','测试');

--使用表复制语句也可以自动增长
insert into qdtest select * from qdtest

参考资料:http://ajava.org/course/oracle/10983.html
http://blog.sina.com.cn/s/blog_4e7cf89d01000c5u.html

353°/3532 人阅读/0 条评论 发表评论

登录 后发表评论