风人园

弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……

Oracle自增字段的实现

最近在做系统的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 2007-03-05 10:28 风人园 阅读(750) 评论(0)  编辑  收藏 所属分类: Oracle