数据表的字段自增长-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;