随笔-57  评论-170  文章-17  trackbacks-0
      最近在做系统的Oracle移植,需要从MySQL移植到Oracle中,在MySQL中有自增类型的字段,在Oracle中却没有,需要用其它的办法实现。在Oracle中要用一个SEQUENCE和触发器实现。下面是我的一个实现:
 1CREATE TABLE FOO
 2(
 3   INDEX                          INT                            NOT NULL,
 4   ABC                            VARCHAR2(128),
 5   DEF                            VARCHAR2(128),
 6   PRIMARY KEY (INDEXID)
 7) TABLESPACE TEMP;
 8
 9CREATE SEQUENCE FOO_INDEXID INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999 CYCLE NOCACHE;
10
11CREATE OR REPLACE TRIGGER INSERT_FOO_INDEXID
12BEFORE INSERT ON FOO
13REFERENCING
14    NEW AS new
15    OLD AS old
16FOR EACH ROW
17BEGIN
18    SELECT FOO_INDEXID.NEXTVAL INTO :new.INDEXID FROM DUAL;
19END;
posted on 2005-05-12 14:41 小米 阅读(451) 评论(1)  编辑  收藏 所属分类: 数据库

评论:
# re: Oracle中的自增类型的实现 2007-06-04 08:25 | PF
楼主,int类型的长度不可能到“999999999999”,如此定义队列无意义的!

其实你可以不用考虑实例化,应该去自定义一种数据类型,建表引用即可  回复  更多评论
  

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
 
相关链接:
网站导航: