在oracle里使用自增ID字段的步骤比较繁琐,总结如下:
-- 创建表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
CREATE TABLE ADVICE
(
ID INT NOT NULL ,
ACTIVE INT DEFAULT 1 NOT NULL ,
TYPE INT NOT NULL ,
MSG VARCHAR2(512) NOT NULL ,
ADVICE VARCHAR2(4000) NOT NULL ,
PRIMARY KEY (ID),
CONSTRAINT ADVICE_UNI UNIQUE (TYPE,MSG)
)TABLESPACE MYDB;
--创建自增ID,名称为:表名_字段名_SEQ
CREATE SEQUENCE ADVICE_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;
-- 为Insert操作创建触发器,无需在SQL语句里写NEXTVAL,名称为表名_INS_TRG
CREATE OR REPLACE TRIGGER ADVICE_INS_TRG BEFORE INSERT ON ADVICE FOR EACH ROW WHEN (NEW.ID IS NULL )
BEGIN
SELECT ADVICE_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END ;
|