Oracle实现ID自增长需要三个步骤:
1)首先创建表并设定主键;
2)创建序列(即:定义一个增长逻辑);
3)创建触发器并启动(即:将增长逻辑与列绑定,并说明何时触发增长逻辑,最后让绑定生效)。
一、通过Developer的UI设定
1.创建表并设定ID主键
CREATE TABLE "SAP_APP_COMM_T"
(
"ID" NUMBER,
"BASE_KEY" VARCHAR2(50 BYTE),
"BASE_NAME" VARCHAR2(100 BYTE),
"BASE_DESC" VARCHAR2(50 BYTE),
"BASE_TYPE" VARCHAR2(50 BYTE),
"BASE_SON" VARCHAR2(50 BYTE),
"DATA_TYPE" VARCHAR2(10 BYTE),
CONSTRAINT "SAP_APP_COMM_T_PK" PRIMARY KEY ("ID")
)
2.创建序列
(1)序列文件夹 → 右键 新建序列;
(2)选择用户,填写序列名称,增长的初始值,最大值,递增值,递增方式,排序等。
3.创建触发器并启动
(1)在表名上右击 → 触发器 → 创建序列的主索引建;
(2) 依次填好触发器名称、序列名和列名;
(3) 选择表,右键->触发器->全部启动。
至此,ID自增长设置完成。
二、通过脚本设置自增ID
1.首先建表並設置主鍵
CREATE TABLE "JG_OPERATION_LOG_T"
(
"ID" NUMBER(10,0),
"FORM_TYPE" VARCHAR2(10 BYTE),
"PROD_GROUP" VARCHAR2(40 BYTE),
"PROD_LOCALE" VARCHAR2(40 BYTE),
"DEPT" VARCHAR2(40 BYTE),
"HOST_IP" VARCHAR2(50 BYTE),
"DATA_SOURCE" VARCHAR2(30 BYTE),
"BY_YEAR" VARCHAR2(4 BYTE),
"BY_MONTH" VARCHAR2(2 BYTE),
"BY_DATE" VARCHAR2(20 BYTE),
"ACTION_NAME" VARCHAR2(30 BYTE),
"ACTION_USER" VARCHAR2(30 BYTE),
"TOTAL_COUNT" NUMBER(8,0),
"ACTUAL_COUNT" NUMBER(8,0),
"ACTION_RESULT" VARCHAR2(10 BYTE),
"FIELD1" VARCHAR2(50 BYTE),
"FIELD2" VARCHAR2(50 BYTE),
"CREATE_USER" VARCHAR2(50 BYTE),
"CREATE_DATE" DATE DEFAULT sysdate,
PRIMARY KEY ("ID")
)
2.新建序列
create sequence SEQ_JG_OPERATION_LOG_T_ID
minvalue 1
nomaxvalue
increment by 1
start with 1
nocache
3.新建觸發器
CREATE OR REPLACE TRIGGER "TRIG_JG_OPERATION_LOG_T_TRIGGER"
before insert ON jg_operation_log_t for each row
WHEN (
new.id is null
) begin
select SEQ_JG_OPERATION_LOG_T_ID.nextval into:NEW.ID from dual;
end;