Java软件报表软件技术博客

java报表软件技术汇总 java报表软件制作 报表软件新闻
posts - 355, comments - 100, trackbacks - 0, articles - 3
   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理
 工具:FineReport报表
 
SqlServer MySql都有自增长的功能,而Oracle必须接结合sequence序列(一般用于主键列),并使用触发器才能够实现自动增长,具体步骤如下:

一、            建表

create table listid 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;

 

三、            创建触发器

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;

7.        /


 

四、            插入数据

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字段不输入若输入任意数字时,数据库中都按照自增长的规律进行赋值,如下图所示:




评论

# re: Oracle 数据库实现自增长列[未登录]  回复  更多评论   

2009-06-29 08:29 by m
insert的时候直接 id的值就填list_seq.nextval。

Insert into list values(list_seq.nextval,’bbb’);

# re: Oracle 数据库实现自增长列  回复  更多评论   

2009-06-29 09:18 by 徐尧
楼上说的对,是啊,没必要写触发器吧,更不用说必须了,大数量的插入触发器效率太低了

# re: Oracle 数据库实现自增长列[未登录]  回复  更多评论   

2009-06-30 15:56 by duduli
在大量的并发的进程中,触发器会降低效率的。
1楼的就是很普遍使用的方法

# re: 数据库报表—Oracle 数据库实现自增长列  回复  更多评论   

2009-11-06 10:50 by ……
用惯sql server的陋习,鄙视自增长字段

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问