数据表的字段自增长-sequence
•MySQL、SQLServer 这些数据库的字段都有自增长属性,oracle则用另一种方式实现字段自增长的,这就是sequence对象。
•创建sequence
CREATE SEQUENCE 序列名称
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10 -- 缓存10个序列
NOORDER; --并行时取得序列的顺序
CREATE SEQUENCE 序列名称
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10 -- 缓存10个序列
NOORDER; --并行时取得序列的顺序
•使用 sequence
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
SELECT empseq.currval FROM DUAL;
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
SELECT empseq.currval FROM DUAL;
•不能在表字段默认值(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;