首页 > 数据库 >PostgreSQL 序列(Sequence)

PostgreSQL 序列(Sequence)

时间:2023-11-02 19:35:52浏览次数:35  
标签:PostgreSQL seq Sequence -- linq test 序列 id

基本操作

--新增序列
CREATE SEQUENCE xxx_id_seq INCREMENT 1 -- 一次加多少 MINVALUE 1 -- 最小值 START 1 --从多少开始 CACHE 1 CYCLE;

--指定表使用
alter table xxx_table alter column id set DEFAULT nextval('xxx_id_seq')

--查询序列
SELECT nextval('xxx_id_seq');

--删除序列
DROP SEQUENCE xxx_id_seq;

--重置序列
alter sequence xxx_id_seq restart with 1

--修改序列(修改序列的最小值和最大值)
ALTER SEQUENCE sequence_name MINVALUE new_min_value MAXVALUE new_max_value;

serial数据类型

在 PostgreSQL 中,serial 是一种方便的数据类型,它被用于创建自增的序列。当你在表中定义一个列为 serial 类型时,PostgreSQL 会自动创建一个相关的序列(Sequence),并将列与该序列关联起来。每次向该表插入一行数据时,该列的值都会自动递增。

序列溢出(超出范围 int4最大值2147483647)

方法一:主键 int4 修改为 int8

--创建表
CREATE TABLE "linq_test" (
  "linq_test_id" serial NOT NULL ,
  "merchant_id" int4 NOT NULL,
  "sop_task_id" int4 NOT NULL
)
--主键修改为int8
alter table linq_test alter linq_test_id type bigint;
--修改序列类型,重置最大值
ALTER SEQUENCE "linq_test_linq_test_id_seq" AS bigint MAXVALUE 9223372036854775807;

方法二:重置主键id

--重置序列 值为1
alter sequence linq_test_linq_test_id_seq restart with 1
--主键重新赋值
UPDATE linq_test SET linq_test_id = nextval('linq_test_linq_test_id_seq');

重置前

重置后

序列溢出预警

--last_value 接近 max_value 表面序列快溢出了
SELECT * FROM pg_sequences where last_value is not null 
order by last_value  desc;

标签:PostgreSQL,seq,Sequence,--,linq,test,序列,id
From: https://www.cnblogs.com/lgxlsm/p/17786117.html

相关文章

  • 子序列求和最大问题
    子序列求和最大问题是给定一个序列数组,求出连续序列的子数组的和最大。这样的问题可以用动态规划来求解,关于动态规划,在前面已经做了比较详细的讲解了。https://www.cnblogs.com/wancy/p/16741342.html1.子序列求和假设现在有一个数组为[1,-2,0,3,-2,4,6,-5,2],根据排列......
  • jackson序列化key排序
    对象在序列化的时候对key进行排序使用 JsonPropertyOrder```java@Target({ElementType.ANNOTATION_TYPE,ElementType.TYPE,ElementType.METHOD,ElementType.CONSTRUCTOR,ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@JacksonAnnotationpublic@interface......
  • NativeBuffering,一种高性能、零内存分配的序列化解决方案[性能测试篇]
    第一版的NativeBuffering([上篇]、[下篇])发布之后,我又对它作了多轮迭代,对性能作了较大的优化。比如确保所有类型的数据都是内存对齐的,内部采用了池化机器确保真正的“零内存分配”等。对于字典类型的数据成员,原来只是“表现得像个字段”,这次真正使用一段连续的内存构架了一个“哈希......
  • 洛谷 P2290 [HNOI2004] 树的计数(Prufer序列,Cayley 公式)
    传送门解题思路关于Prufer序列的构造,见OI-wiki这里直接放结论:一个Prufer序列与一个无根树一一对应度数为\(d_i\)的节点在序列中出现了\(d_i-1\)次\(\sum(d_i-1)=n-2\)n个点的完全图的生成树有\(n^{n-2}\)种所以相当于n-2个数(有重复的)进行全排列,答案即为:\[\frac......
  • 解题报告 P2572 [SCOI2010] 序列操作
    P2572[SCOI2010]序列操作线段树。首先对于一个区间,我们需要存储\(8\)个量来保证算出答案:\(1\)的个数,\(0\)的个数,最左边连续\(1/0\)个数,最右边连续\(1/0\)个数,区间内最长连续\(1/0\)个数。可以如下定义一个节点:structnode{ intcnt1,cnt0,ls1,ls0,rs1,rs0,ss1,s......
  • PostgreSQL技术大讲堂 - 第31讲:SQL调优技巧
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第31讲:SQL调优技巧 第31讲预告:10月28日(周六)19:30-20:30......
  • 用blast blastn进行短序列的搜索(比对)
    blastn多加上 blastn-short-task:设置比对模式,通常情况会有一个默认task,这里要设置为blastn-short-word_size:尽可能小,这里设为7-evalue:类似于p值的一个指标,越小说明越可靠 TasksTaskDescriptionblastpTraditionalBLASTPtocompareaproteinquerytoaproteindatabaseblas......
  • 马尔可夫转换模型研究交通伤亡人数事故时间序列预测|附代码数据
    最近我们被客户要求撰写关于马尔可夫转换模型的研究报告,包括一些图形和统计输出。本文描述了R语言中马尔克夫转换模型的分析过程首先,对模拟数据集进行详细建模。接下来,将马尔可夫转换模型拟合到具有离散响应变量的真实数据集。用于验证对这些数据集建模的不同方法。模拟实例示例数......
  • 序列化组件对数据的增删改查
    序列化组件对数据的增删改查1写一个序列化的类,继承Serializer2在类中写要反序列化的字段,想反序列化哪个字段,就在类中写哪个字段,字段的属性(max_lenth......) max_length 最大长度min_lenght 最小长度allow_blank 是否允许为空trim_whitespace 是否截断空白字符......
  • python、R语言ARIMA-GARCH分析南方恒生中国企业ETF基金净值时间序列分析
    全文链接:https://tecdat.cn/?p=34123原文出处:拓端数据部落公众号分析师:YuyanWang虽然中国股票市场日益完善,但还不完全是弱有效市场,因此中国股票市场存在比较明显的通过技术分析达到的套利机会。解决方案任务/目标根据基金净值的要求,运用多种模型分析实现股票走势的预测。......