Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300071
  • 博文数量: 54
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 606
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-03 22:43
文章分类
文章存档

2011年(3)

2010年(26)

2009年(2)

2008年(23)

我的朋友

分类: Oracle

2010-11-09 23:27:25

oracle的自增长可以通SEQUENCE和TRIGGER来实现.
若想要实现某字段在所有表里统一自增
例如为了实现A和B表中的id列统一自增,也就是当A表中..id值为3,紧接着在B表中插入一条记录.系统自动给B中id赋值为4..再插入...赋值为5...此时若接着向A中插入记录..系统将自动给A中的新插记录的id赋值为6...
只需要将A和B两个表在insert上的触发器和同一个SEQUENCE关联即可.
 

CREATE OR REPLACE TRIGGER t_xxxA_trigger BEFORE
INSERT ON t_xxxA FOR EACH ROW
when (new.id is null)
begin
select t_id_seq.nextval into :new.id from dual;
end;

CREATE OR REPLACE TRIGGER t_xxxB_trigger BEFORE
INSERT ON t_xxxB FOR EACH ROW
when (new.id is null)
begin
select t_id_seq.nextval into :new.id from dual;
end;


阅读(1500) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-10 15:12:03

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com