MySQL、SQLServer 这些数据库的字段都有自增长属性,oracle则用另一种方式实现字段自增长的,这就是sequence对象。
不能在表字段默认值(DEFAULT)中使用顺列号(某某sequence.Next) 要想在增加记录时,自动取得自增量,需使用触发器。例如:
Create SEQUENCE SEQUENCE名称
MINVALUE 1
MAXVALUE 1.0E28
Start With 1
INCREMENT By 1
CACHE 20;
Create or Replace Trigger 触发器名
Before Insert On 表
For Each Row
Begin
Select SEQUENCE名称.Nextval Into :New.表的自增字段名 From DUAL;
End;
创建sequence CREATE SEQUENCE 序列名称 INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10 -- 缓存10个序列 NOORDER; --并行时取得序列的顺序
CREATE SEQUENCE TABLE1_SEQ
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 100
NOORDER
不能在表字段默认值(DEFAULT)中使用顺列号(某某sequence.Next) 要想在增加记录时,自动取得自增量,需使用触发器。例如:
Create SEQUENCE SEQUENCE名称
MINVALUE 1
MAXVALUE 1.0E28
Start With 1
INCREMENT By 1
CACHE 20;
Create or Replace Trigger 触发器名
Before Insert On 表
For Each Row
Begin
Select SEQUENCE名称.Nextval Into :New.表的自增字段名 From DUAL;
End;