SQL序列

序列

SEQUENCE
序列是Oracle提供的一组能够自动增长的序号,一般是提供主键值用的。

序列的创建

CREATE SEQUENCE 序列名                    ----可以结束了
	START WITH n                         ----初始值 n,如果这句话不写,默认是1
		INCREMENT BY n                   ----n代表增长幅度n,如果这句话不写,默认是1,增长幅度可以是负数
			MAXVALUE n  |  NOMAXVALUE    ----最大值n或者没有最大值,如果不写这句话,默认的最大值是10的27次方		
				MINVALUE  |  NOMINVALUE  ----最小值n或者没有最小值,如果不写这句话,默认的最小值是-10^27
					CYCLE | NOCYCLE      ----循环或者不循环,不写默认是不循环
						CACHE n |        ----缓存N或者没有缓存,不写默认缓存20个序号 
CREATE SEQUENCE noname_1
	START WITH 5
		INCREMENT BY 2
			MAXVALUE 100
				CYCLE
					CACHE 20;

注意:缓存不能超过 最大值/增长幅度

序列的使用

当前值
currval
下一个值
nextval
查看一下该序列当前序号是多少

SELECT noname_1.currval from dual;

注意:
1.该序列仅仅是创建出来,还没有任何值
2.使用序列第一次需要使用下一个值

SELECT noname_1.nextval from dual;

当循环的时候,是从1开始的,不论你的步长不论初始值,都是1.
以前插入数据:

INSERT INTO  noname VALUES(1,'NONA');
INSERT INTO  noname VALUES(2,'NONB');
INSERT INTO  noname VALUES(3,'NONC');
INSERT INTO  noname VALUES(4,'NOND');
INSERT INTO  noname VALUES(5,'NONE');
INSERT INTO  noname VALUES(6,'NONF');
INSERT INTO  noname VALUES(7,'NONG');
INSERT INTO  noname VALUES(8,'NONH');
INSERT INTO  noname VALUES(9,'NONI');

学了序列后的插入数据

CREATE SEQUENCE addp_1 
	START WITH 0
		INCREMENT BY 1
			MAXVALUE 100
				CYCLE
					CACHE 20;
INSERT INTO  noname VALUES(addp_1.nextval,'NONA');
INSERT INTO  noname VALUES(addp_1.nextval,'NONB');
INSERT INTO  noname VALUES(addp_1.nextval,'NONC');
INSERT INTO  noname VALUES(addp_1.nextval,'NOND');
INSERT INTO  noname VALUES(addp_1.nextval,'NONE');
INSERT INTO  noname VALUES(addp_1.nextval,'NONF');
INSERT INTO  noname VALUES(addp_1.nextval,'NONG');
INSERT INTO  noname VALUES(addp_1.nextval,'NONH');
INSERT INTO  noname VALUES(addp_1.nextval,'NONI');

注意:如果使用的是ORACLE 11g及以后的版本,由于存在“延迟段”技术,则会跳过序列的第一个值,即当我们创建了新的表和序列,在插入insert语句时,序列会跳过第一个值从2开始。
解决方法:修改数据库延迟段属性位FALSE,需要权限

ALTER SYSTEM SET deferred_segment_creation=FALSE; 

删除序列

DROP 序列名

相关推荐

  1. SQL序列

    2024-04-20 22:02:03       29 阅读
  2. SQL生成自然数,日历序列 浅析

    2024-04-20 22:02:03       10 阅读
  3. 璨与序列 题解(stl,dfs)

    2024-04-20 22:02:03       9 阅读
  4. MySQL生成日期序列与表关联的 SQL 查询

    2024-04-20 22:02:03       15 阅读
  5. STL标准库(三)序列容器之list

    2024-04-20 22:02:03       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 22:02:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 22:02:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 22:02:03       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 22:02:03       20 阅读

热门阅读

  1. 美式英语和英式英语的不同之处

    2024-04-20 22:02:03       14 阅读
  2. SQL优化——成本计算

    2024-04-20 22:02:03       15 阅读
  3. NLP预训练模型- GPT-3学习指南与学习总结案例

    2024-04-20 22:02:03       15 阅读
  4. 谈谈Python在机器学习和人工智能领域的应用

    2024-04-20 22:02:03       14 阅读
  5. 深入了解 Gitea:轻量级的自托管 Git 服务

    2024-04-20 22:02:03       13 阅读
  6. glm::vec3 等结构放入结构体中 内存对其问题

    2024-04-20 22:02:03       15 阅读
  7. 企业数据分析的维度一般有哪些?

    2024-04-20 22:02:03       14 阅读