Oracle实现自增字段
Oracle和MS SQL不同,默认是没有自增列的,但是可以通过创建序列和触发器的方式来创建自增列字段,下面我就讲述下如何创建自增列字段(Oracle 11g版本)。
1.创建一个TestTable表,
CREATE TABLE TestTable
(
ID NUMBER NOT NULL, --用于自增列
NAME VARCHAR2(40)
)
;
(
ID NUMBER NOT NULL, --用于自增列
NAME VARCHAR2(40)
)
;
2.创建一个序列(Sequence),命名为SEQ(建议用自带的可视化工具创建 ‘DUNCAN’是我登陆的用户名,不要全盘复制)。
CREATE SEQUENCE "DUNCAN"."SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999
INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER NOCYCLE ;
3.创建触发器
代码
create or replace
TRIGGER Test_Trr
BEFORE INSERT ON TestTable --在‘TestTable’上创建触发器
FOR EACH ROW
BEGIN
SELECT SEQ.NEXTVAL INTO :new.ID FROM sys.DUAL; --‘nextval=增加sequence的值,然后返回 sequence 值再将该值插入到ID中’
END;
TRIGGER Test_Trr
BEFORE INSERT ON TestTable --在‘TestTable’上创建触发器
FOR EACH ROW
BEGIN
SELECT SEQ.NEXTVAL INTO :new.ID FROM sys.DUAL; --‘nextval=增加sequence的值,然后返回 sequence 值再将该值插入到ID中’
END;
好了,TestTable表的自增列就创建好了,同仁们插入一条数据试试吧!