Posted on 2011-12-19 10:15
FineReport——報表技術領跑者 閱讀(169)
評論(0) 編輯 收藏 所屬分類:
Java報表技術知識
SqlServer 和MySql都有自增長的功能,而Oracle必須接結合sequence序列(一般用于主鍵列),并使用觸發器才能夠實現自動增長,具體步驟如下:
一、 建表
create table list(id number,name varchar2(50));
二、 創建序列
1. create sequence list_seq
2. minvalue 1
3. maxvalue 99999999999999
4. start with 1
5. increment by 1
6. cache 20
7. order;

http://www.finereport.com/forumimages/o-order.jpg
三、 創建觸發器
1. Create or replace trigger list_tg
2. Before insert on list
3. For each row
4. Begin
5. Select list_seq.nextval into :new.id from dual;
6. End;

http://www.finereport.com/forumimages/o-trigger1.jpg

http://www.finereport.com/forumimages/o-trigger2.jpg

http://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-assign2.jpg

http://www.finereport.com/forumimages/o-assign3.jpg
文章轉自:http://blog.vsharing.com/fanfanzheng/A1463308.html