时间:2021-05-24
需要向下图一样,需要对产品编码编码设置一个序列。编码规则 SKU + 序列号:
序列是基于bigint算法的,因此范围是不能超过一个八字节 整数的范围(-9223372036854775808 到 9223372036854775807)。
由于nextval和setval调用绝不会回滚, 如果需要序数的"无间隙"分配,则不能使用序列对象。可以 通过在一个只包含一个计数器的表上使用排他锁来构建无间隙的分配, 但是这种方案比序列对象开销更大,特别是当有很多事务并发请求序数时
创建和使用语法:
CREATE SEQUENCE serial START 101;SELECT nextval('serial'); nextval--------- 101本节描述用于操作序列对象的函数,序列对象也被称为序列生成器或者就是序列。
序列对象都是用CREATE SEQUENCE创建的特殊的单行表。
序列对象通常用于为表的行生成唯一的标识符。
表 中列出的这些序列函数,可以为我们从序列对象中获取连续的序列值提供了简单的、多用户安全的 方法。
获取序列值是安全的,可以用来和其他键组合形成唯一主键。
补充:PostgreSQL中序列相关函数 nextval、currval、lastval、setval、setval
注意序列名中有大写字母时,regclass参数值需要用双引号括和单引号一起括起来,比如:
select nextval('"ACT_ChecklistItem_Id_seq"');除了setval函数,还有另一种方法也是修改sequence的start_value,也是会更新序列的当前值:
项目部署上去需要插入一些基础数据,所以新增数据的ID不是从1开始,修改sequence的start_value (下次执行nextval得到的是start_value,而不是start_value+1) 。
alter sequence s_seq restart with 2相当于
select setval('s_seq',2,false)以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
oracle中创建序列及序列补零实例详解我们经常会在在DB中创建序列:--CreatesequencecreatesequenceCOMMON_SEQminva
区别:1、主键,Oracle不可以实现自增,mysql可以实现自增。oracle新建序列,SEQ_USER_Id.nextval2、索引:mysql索引从0开始
Java序列化和反序列化实例详解在分布式应用中,对象只有经过序列化才能在各个分布式组件之间传输,这就涉及到两个方面的技术-发送者将对象序列化,接受者将对象反序列
详解Python序列化Serialize和反序列化Deserialize序列化(serialization)序列化是将对象状态转换为可保持或传输的格式的过程。与
excel是我们常用的办公软件,往往我们会用到自动填充序列功能,那么excel自动填充序列怎么用?下面小编带来自动填充序列使用教程详解,希望对大家有所帮助。自动