建立序列号,用于产生唯一的整数,典型用法是作为主键列。
| 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; |