PostgreSQL 修改序列

ops/2024/11/14 20:20:59/

ALTER SEQUENCE public.pitr_test_id_seq CACHE XXXXX;
SELECT nextval('pitr_test_id_seq');
SELECT setval('pitr_test_id_seq', 42);            下一次 nextval 会返回 43
SELECT setval('pitr_test_id_seq', 42, true);     同上
SELECT setval('pitr_test_id_seq', 42, false);    下一次 nextval 将返回 42

currval(pitr_test_id_seq)    返回最近一次用 nextval 获取的指定序列的值
lastval()    返回最近一次用 nextval 获取的任何序列的值
nextval(pitr_test_id_seq)    递增序列并返回新值
setval(pitr_test_id_seq, bigint)    设置序列的当前值
setval(pitr_test_id_seq, bigint, boolean)    设置序列的当前值以及 is_called 标志

备注:这里 CACHE 如果过大会造成表类似锁表状态,但是和锁表又有非常大的区别。遇到问题的时候就算重启服务都无法解决。
有一次我们一个研发写了一个 ALTER SEQUENCE public.xxx_seq CACHE 1731506966603517955;
最后问题还是通过解析日志才找到的。然后再通过模拟多个 SESSION 进行请求。

这里的 cache 是这个意思,一次性预先分配指定数量的序列值,然后将其存储在内存中,以便能尽快被会话使用。
The clause CACHE cache enables sequence numbers to be preallocated and stored in memory for faster access.

这里进程还不能通过调用 pg_terminate_backend 来实现关闭进程的操作。

单独执行语句 ALTER SEQUENCE public.pitr_test_id_seq CACHE XXXXX; 不会有问题,但是在执行完这个语句之后,使用 select nextval('pitr_test_id_seq'); 来获取序列的下一个键值无法被运行,会一直处于等待的状态。还是需要从操作系统的层面进行 kill -9 select nextval('pitr_test_id_seq'); 进程的 PID,然后再执行 ALTER SEQUENCE public.pitr_test_id_seq CACHE 1;  这里的 CACHE 的值就是 1。


http://www.ppmy.cn/ops/133676.html

相关文章

ASP.NET 部署到IIS,访问其它服务器的共享文件 密码设定

asp.net 修改上面的 IIS需要在 配置文件 添加如下内容 》》》web.config <system.web><!--<identity impersonate"true"/>--><identity impersonate"true" userName"您的账号" password"您的密码" /><co…

STM32各模块

1.工程文件结构&#xff1a; startup前缀的汇编文件是来调用system前缀的文件来进行系统初始化和时钟配置,然后调用自定义的main函数&#xff0c;包括很多stm32f10x_it文件定义的中断处理函数。 stm32f10x.h定义了stm32所有外设寄存器描述&#xff0c;core_cm3文件定义了内核寄…

LeetCode 热题100之技巧关卡

1.只出现一次的数字 思路分析1&#xff1a;使用哈希表存储每个数字和该数字出现的次数。遍历数组即可得到每个数字出现的次数&#xff0c;并更新哈希表&#xff0c;最后遍历哈希表&#xff0c;得到只出现一次的数字。 具体实现代码&#xff08;详解版&#xff09;&#xff1a;…

前缀和 so easy! 力扣.128 最长连续序列 leetcode longest-consecutive-sequence

数组系列 力扣数据结构之数组-00-概览 力扣.53 最大子数组和 maximum-subarray 力扣.128 最长连续序列 longest-consecutive-sequence 力扣.1 两数之和 N 种解法 two-sum 力扣.167 两数之和 II two-sum-ii 力扣.170 两数之和 III two-sum-iii 力扣.653 两数之和 IV two…

【商城系统搭建流程】

商城系统的搭建流程可以分为以下几个步骤&#xff1a; 1.需求分析&#xff1a;确定商城系统的功能和特性&#xff0c;例如商品展示、购物车、订单管理、支付等。 2.系统设计&#xff1a;根据需求分析结果设计商城系统的架构&#xff0c;包括前端页面设计和后端数据库设计。 …

高级sql使用技巧

窗口函数&#xff08;Window Functions&#xff09;&#xff1a; 窗口函数可以在结果集的行之间进行计算&#xff0c;例如计算移动平均值、排名等。在使用时&#xff0c;可以使用 OVER() 语句来定义窗口。例如&#xff1a; sql SELECT employee_id,salary,AVG(salary) OVER (P…

【deepin】vscode环境内安装 julia 语言

deepin 系统虽然脱胎于 Debian 系统&#xff0c;但是部分功能的语句仍然不同。 apt 的更新 sudo apt update sudo apt-get update sudo apt dist-upgrade安装更新 python sudo apt install python3 sudo apt install python3-pip python3 -m pip install --break-system-pac…

vue2使用 <component> 标签动态渲染不同的表单组件

在后台管理系统中&#xff0c;涉及到大量表单信息的修改和新增。现在想对模板中代码做一些简单的优化。 1. 使用 v-for 循环简化表单项 可以将表单项的定义提取到一个数组中&#xff0c;然后使用 v-for 循环来生成这些表单项。这将减少重复代码&#xff0c;提高可维护性。 2…