首页 > 其他分享 >序列

序列

时间:2023-07-13 09:57:33浏览次数:33  
标签:CURRVAL seq sequence currval emp 序列

数据库模式对象序列

开发中最重要,序列(sequence)是序列号的生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。

创建序列需要

create sequence权限。序列的创建语法如下:

CREATE SEQUENCE 序列名
[increment by n]
[start with n]
[{maxvalue n|NOMAXVALUE}]
[{MINVALUE n|NOMINVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE N|NOCACHE}]
/* increment 步长是多少
  start           初始值多少
  maxvalue/MINVALUE 最大最小值
  CYCLE       是否循环
  NOCACHE 缓存值(一次生成多少个序列)*/

其中: INCREMENT BY 用于定义序列的步长,如果省略,则默认为1,如果出现负值,则序列的值是按照此步长递减的。

start with 定义学列的初始值(即产生的第一个值),默认为1

maxvalue 定义序列生成器的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增序列,系统能产生的最大值为10的27次方:对于递减序列,最大值是-1

删除序列:
drop sequence 序列名;

删除序列的认应该是序列的创建者或者拥有drop any sequence系统权限的用户。序列一旦删除就不能被引用了。序列的某些部分也可以在使用中进行修改,但不能修改start with选项。对序列的修改只影响随后产生的序号,已经产生的序号不变,修改序列的语法如下:

序列的使用

如果已经创建了序列,怎么使用?方法是使用currval和nextval来引用序列的值。

NEXTVAL 取得下一个序列的值

CURRVAL 取得当前序列的值,新打开的会话中,是不存在currval值,必须执行一次nextval生成一个拿到当前值。

调用NEXTVAL将生成序列中的下一个序列号,调用时要指出序列名,调用:

序列名.nextval

CURRVAL用于产生序列的当前值,无论调用多少次都不会产生序列的下一个值。如果序列还没通过调用nextval产生序列的下一个值,先引用CURRVAL没有意义。调用CURRVAL的方法同上,

序列名.CURRVAL
--eg   序列的应用:创建用于表emp的主键列的序列
create sequence seq_emp increment by 1 start with 1 maxvalue 100000;
--使用序列
insert into emp(id,empname ,sex) values(seq_emp.nextvalue,'张三'|seq_emp.currval,'男');
insert into emp(id,empname ,sex) values(seq_emp.nextvalue,'张三'|seq_emp.currval,'男');
insert into emp(id,empname ,sex) values(seq_emp.nextvalue,'张三'|seq_emp.currval,'男');
查看序列

通过数据字典USER_OBJECTS可以查看用户拥有的序列。

通过数据字典user_sequences可以查看序列的设置。

 

标签:CURRVAL,seq,sequence,currval,emp,序列
From: https://www.cnblogs.com/xjianbing/p/17549552.html

相关文章

  • Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化|附代码数据
    原文链接:http://tecdat.cn/?p=23573最近我们被客户要求撰写关于Keras神经网络序列模型的研究报告,包括一些图形和统计输出。我们可以很容易地用Keras序列模型拟合回归数据并预测测试数据。  在这篇文章中,我们将简要地学习如何用Python中的Keras神经网络API拟合回归数据。我们将......
  • LeetCode 热题 100 之 128. 最长连续序列
    题目描述给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n)的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4。示例2:输入:nums......
  • 力扣---1911. 最大子序列交替和
    一个下标从 0 开始的数组的 交替和 定义为 偶数 下标处元素之 和 减去 奇数 下标处元素之 和 。比方说,数组 [4,2,5,3] 的交替和为 (4+5)-(2+3)=4 。给你一个数组 nums ,请你返回 nums 中任意子序列的 最大交替和 (子序列的下标 重新 从0开始......
  • postgresql序列重复问题处理
    问题在执行数据插入时,postgresql提示morethanoneowned sequence found错误。这个和之前文章中写的序列编号错乱不同,是由数据表的一个列生成了多个序列导致的。(常见于两个数据库的拷贝、同步等操作)。如果查看序列,会发现序列中有很多重复的项目,可以执行语句:SELECT'DROPSE......
  • go语言序列化和反序列化
    序列化需求内存中的map、slice、array以及各种对象,如何保存到一个文件中?如果是自己定义的结构体的实例,如何保存到一个文件中?如何从文件中读取数据,并让它们在内存中再次恢复成自己对应的类型的实例?要设计一套协议,按照某种规则,把内存中数据保存到文件中。文件是一个字节序列,所......
  • 基于遗传算法优化支持向量机(GA-SVM)的时间序列预测 matlab代码
    基于遗传算法优化支持向量机(GA-SVM)的时间序列预测matlab代码ID:8429643681761593......
  • 时间序列转图像:相对位置矩阵(Relative Position Matrix)-Python版复现
    时间序列分类(TSC)在时间序列数据挖掘任务中备受关注,已经应用到各个领域。随着卷积神经网络(ConvolutionalNeuralNetwork,CNN)的迅速发展,基于卷积神经网络的TSC方法直到最近才开始出现。因此,提出了一个新的深度学习框架,使用相对位置矩阵(RelativePositionMatrix,RPM)和卷积神经......
  • 山东大学考研机试--AcWing 3717. 整数序列
    题目描述很多整数可以由一连串的整数序列(至少两个数)相加而成,比如25=3+4+5+6+7=12+13。输入一个整数N,输出N的全部整数序列,如果没有则输出NONE。输入格式一个整数N。输出格式每行输出一个满足条件的整数序列。序列内部元素从小到大排序。优先输出首项更小的序列。数据......
  • LeetCode -- 792. 匹配子序列的单词数
     方法1:利用桶的思想同时匹配所有words中的子串(走路写法)把所有首字母相同的子串放入到一个桶中,然后遍历s,对于首字母为s[i]的单词,若其大小为1则res++,否则删掉s[i],并根据s[i+1]放入新的桶中。c++classSolution{public:intnumMatchingSubseq(strings,vecto......
  • web中间件漏洞之(3)fastjson反序列化漏洞
    引言fastjson可以将Java对象序列化为json格式,也可将json反序列化为Java对象。在请求包里面中发送恶意的json格式payload,fastjson在处理json对象时使用了autotype机制,允许在反序列化时通过@type指定反序列化的类,调用指定类的set和get方法。攻击者可以通过rmi或ldap服务,将ldap......