1. 介绍

本文介绍如何在oracle中提供自动增长数字列,假设现有表名为demoTable的表,主键为uuid的字符型字段

2. 操作步骤

2.1. 创建sequence

创建名字为seq_gb_autoinc的序列

     create sequence seq_gb_autoinc
     minvalue 10000
     maxvalue 9999999999999999999999999999
     start with 1
     increment by 1
     nocache;

2.2. 在表中增加一列

在demoTable表上增加一列为gb_id,类型为number(19)

2.3. 在表上创建trigger

创建名字为seq_gb_autoinc的触发器

     create or replace tirgger insert_gb_autoinc
     before insert on demoTable
     for each row
          begin
               select seq_gb_autoinc.nextval into :new.gb_id from dual;
          end;

2.4. 确认在表修改时,增加的列不会改动

2.5. 手工修改demoTable表的现有数据,将其gb_id设置为10000以下的不重复整形值

可以使用 rank () over ( ORDER BY ROWID ASC ) 的方式为现有表数据分配顺序值,并赋值为gb_id的数据

2.6. 提供视图为第三方服务,支持自增型数据映射