FineReport 发表于 2011-12-19 11:03:34

Oracle 数据库实现自增长列

SqlServer 和MySql都有自增长的功能,而Oracle必须接结合sequence序列(一般用于主键列),并使用触发器才能够实现自动增长,具体步骤如下: 一、            建表create table list(id number,name varchar2(50)); 二、            创建序列 1.      create sequence list_seq2.      minvalue 13.      maxvalue 999999999999994.      start with 15.      increment by 16.      cache 207.      order;http://www.finereport.com/forumimages/o-order.jpghttp://www.finereport.com/forumimages/o-order.jpg                                  三、            创建触发器1.      Create or replace trigger list_tg2.      Before insert on list3.      For each row4.      Begin5.      Select list_seq.nextval into :new.id from dual;6.      End;http://www.finereport.com/forumimages/o-trigger1.jpghttp://www.finereport.com/forumimages/o-trigger1.jpghttp://www.finereport.com/forumimages/o-trigger2.jpghttp://www.finereport.com/forumimages/o-trigger2.jpghttp://www.finereport.com/forumimages/o-trigger3.jpghttp://www.finereport.com/forumimages/o-trigger3.jpg四、            插入数据Insert into list values(’’,’aaa’);Insert into list values(’’,’bbb’);Select * from list ;结果为:   ID   name   1       aaa   2       bbb 在Oracle 10g的em 操作界面按照上图配置即可实现自增长序列,数据库端设置完成;在插入数据时自增长字段可由空值’ ’或null代替,如果insert 语句中列出了所插入的字段,如insert into list(name) values(’aaa’),则增长字段不用写 ;如模板所示为一简单的表单,ID字段绑定数据库中的自增长列,BS填报时,id字段不输入若输入任意数字时,数据库中都按照自增长的规律进行赋值,如下图所示:http://www.finereport.com/forumimages/o-assign1.jpg
http://www.finereport.com/forumimages/o-assign1.jpghttp://www.finereport.com/forumimages/o-assign2.jpghttp://www.finereport.com/forumimages/o-assign2.jpghttp://www.finereport.com/forumimages/o-assign3.jpghttp://www.finereport.com/forumimages/o-assign3.jpg文章转自:http://blog.vsharing.com/fanfanzheng/A1463308.html
页: [1]
查看完整版本: Oracle 数据库实现自增长列