小程序制作平台网站设计平台 互联网品牌制作专家
关于A5客户收购GoogleAdsense带有搜索账户的相关事宜更多

软文发布平台资讯中心

postgresql中的序列nextval详解

postgresql中的序列nextval详解

  项目招商找A5 快速获取精准代理名单

这篇文章主要介绍了postgresql 中的序列nextval详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。

一、postgresql中的序列

1.1 场景需求

需要向下图一样,需要对产品编码编码设置一个序列。编码规则 SKU + 序列号:

1.2 序列

序列是基于bigint算法的,因此范围是不能超过一个八字节 整数的范围(-9223372036854775808 到 9223372036854775807)。

由于nextval和setval调用绝不会回滚, 如果需要序数的"无间隙"分配,则不能使用序列对象。可以 通过在一个只包含一个计数器的表上使用排他锁来构建无间隙的分配, 但是这种方案比序列对象开销更大,特别是当有很多事务并发请求序数时

创建和使用语法:

CREATE SEQUENCE serial START 101;SELECT nextval('serial');nextval---------101

本节描述用于操作序列对象的函数,序列对象也被称为序列生成器或者就是序列。

序列对象都是用CREATE SEQUENCE创建的特殊的单行表。

序列对象通常用于为表的行生成唯一的标识符。

表 中列出的这些序列函数,可以为我们从序列对象中获取连续的序列值提供了简单的、多用户安全的 方法。

获取序列值是安全的,可以用来和其他键组合形成唯一主键。

补充:PostgreSQL中序列相关函数 nextval、currval、lastval、setval、setval

PostgreSQL中序列主要涉及到的函数是

函数返回类型描述

nextval(regclass)bigint递增序列对象到它的下一个数值并且返回该值。这个动作是自动完成的。即使多个会话并发运行nextval,每个进程也会安全地收到一个唯一的序列值。

currval(regclass)bigint在当前会话中返回最近一次nextval抓到的该序列的数值。(如果在本会话中从未在该序列上调用过 nextval,那么会报告一个错误。)请注意因为此函数返回一个会话范围的数值,而且也能给出一个可预计的结果,因此可以用于判断其它会话是否执行过nextval。

lastval()bigint返回当前会话里最近一次nextval返回的数值。这个函数等效于currval,只是它不用序列名为参数,它抓取当前会话里面最近一次nextval使用的序列。如果当前会话还没有调用过nextval,那么调用lastval将会报错。

setval(regclass, bigint)bigint重置序列对象的计数器数值。设置序列的last_value字段为指定数值并且将其is_called字段设置为true,表示下一次nextval将在返回数值之前递增该序列。

setval(regclass, bigint, boolean)bigint重置序列对象的计数器数值。功能等同于上面的setval函数,只是is_called可以设置为true或false。如果将其设置为false,那么下一次nextval将返回该数值,随后的nextval才开始递增该序列。

注意序列名中有大写字母时,regclass参数值需要用双引号括和单引号一起括起来,比如:

1select nextval('"ACT_ChecklistItem_Id_seq"');

除了setval函数,还有另一种方法也是修改sequence的start_value,也是会更新序列的当前值:

项目部署上去需要插入一些基础数据,所以新增数据的ID不是从1开始,修改sequence的start_value (下次执行nextval得到的是start_value,而不是start_value+1) 。

1alter sequence s_seq restart with 2

相当于

1select setval('s_seq',2,false)

文章来源:脚本之家

来源地址:https://www.jb51.net/article/205204.htm

尊敬的看官您对postgresql中的序列nextval详解有什么看法呢?互联网品牌制作专家愿与您共同探讨!版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请加微信号oem365 举报,一经查实,本站将立刻删除。

上一篇: 淘宝介入多久有结果?淘宝介入怎么判定?   返 回   下一篇:开淘宝直播需要投资多少钱?直播的要点是什么?

相关资讯

小程序应用场景 | 小程序解决方案 | 小程序案例 | 小程序应功能 | 软文发布资源 | 网站设计

酒店预约解决方案
酒店预约小程序走红网络,也是传统转型的重要变化
详情
投票解决方案
强大功能,傻瓜式管理,有效防止作弊刷票
详情
新零售解决方案
小程序是现在新零售的新方式,深度结合线上线下
详情
预约服务解决方案
预约到店小程序通过用户在线预约到店等
详情
企业官网解决方案
企业展示小程序主要展示企业信息、产品案例等
详情
教育培训解决方案
主要展示教育机构的课程、可在线预约与购买课程
详情
推广解决方案
可以让企业通过推广模式全面展示自己的产品
详情
到店解决方案
到店服务解决方案,主要是面向实体餐饮门店
详情

我们的服务是否能满足您的需求?

如果不能,请联系我们或给我们留言,我们收到后会第一时间联系您!感谢您对我们的关注!

粤公网安备 44200002005005号