建立序列号,用于产生唯一的整数,典型用法是作为主键列。
CREATE SEQUENCE sequence_name [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}]; |
ALTER SEQUENCE sequence_name [INCREMENT BY n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}]; |
DROP SEQUENCE sequence_name; |
参数 | 描述 |
---|---|
sequence_name | 序列名 |
INCREMENT BY n | 增量值,默认为 1 |
START WITH n | 开始值,默认为 1 |
MAXVALUE n | 最大值 |
NOMAXVALUE | 无最大值,即增量时为 10 27,减量时为 -1 |
MINVALUE n | 最小值 |
NOMINVALUE | 无最小值,即减量时为 -10 26,增量时为 1 |
CYCLE | 当达到边界时继续产生序列值 |
NOCYCLE | 当达到边界时不产生序列值,默认 |
CACHE n | 指定 Oracle 预分配多少个序列值在内存中,默认为 20 |
NOCACHE | 不缓存 |
属性 | 描述 |
---|---|
NEXTVAL | 下一个值 |
CURRVAL | 现在的值 |
非子查询的 SELECT 部分 |
INSERT 语句的 SELECT 部分 |
INSERT 的 VALUES 子句 |
UPDATE 的 SET 子句 |
视图的 SELECT 语句 |
包含 GROUP BY,HAVING,ORDER BY 子句的 SELECT 语句 |
SELECT,DELETE,UPDATE 的子查询 |
CREATE TABLE,ALTER TABLE 的默认值表达式 |
SELECT sequence_name, min_value, max_value, increment_by, last_number FROM user_sequences; |