当前位置: 首页 > article >正文

PostgreSQL 序列字段达到最大值

背景说明:有这样一个表 cz_bcq1_log,在表定义的时候没有考虑到数据的增长问题,随着系统的运行,现在遇到一个棘手的问题,就是 id 达到最大值了,现在无法对表进行插入操作。

下面是表的 DDL 定义:
CREATE TABLE "public"."cz_bcq1_log" (
  "id" int2 NOT NULL DEFAULT nextval('cz_bcq1_log_id_seq'::regclass),
  "bcq01" int8 NOT NULL,
  "bck01a" int4 DEFAULT 0,
  "bcq03" varchar(10) COLLATE "pg_catalog"."default",
  "bcq04" varchar(20) COLLATE "pg_catalog"."default",
  "bby01" int8,
  "bcq09" int2,
  "bcq11" varchar(128) COLLATE "pg_catalog"."default",
  "bcq13" int2,
  "bcq15" int2,
  "bcq17" timestamp(6),
  "bcq18" varchar(20) COLLATE "pg_catalog"."default",
  "bcq19" timestamp(6),
  "bcq20" varchar(20) COLLATE "pg_catalog"."default",
  "bcq21" int4,
  "bcq22" int4,
  "bcq23" int4,
  "ctime" timestamp(0),
  CONSTRAINT "cz_bcq1_log_pkey" PRIMARY KEY ("id")
);
ALTER TABLE "public"."cz_bcq1_log" OWNER TO "postgres";

表插入数据提示如下:
INSERT INTO "public"."cz_bcq1_log" ("bcq01", "bck01a", "bcq03", "bcq04", "bby01", "bcq09", "bcq11", "bcq13", "bcq15", "bcq17", "bcq18", "bcq19", "bcq20", "bcq21", "bcq22", "bcq23", "ctime") VALUES (142, 53, '955', '955', 11874, 0, NULL, 1, 0, '2021-07-27 17:29:17.219', '高鑫', '2021-07-27 17:29:17.219', '高鑫', NULL, NULL, NULL, '2024-06-12 14:40:27');

ERROR:  nextval: reached maximum value of sequence "cz_bcq1_log_id_seq" (32767)

问题解决:
方案执行一
-- 首先需要创建一个新的 bigserial 类型字段,并将其命名为一个新的名称比如 new_id
ALTER TABLE cz_bcq1_log ADD COLUMN new_id bigserial;

-- 接下来可以使用一个更新语句来更新表中新字段的值
UPDATE cz_bcq1_log SET new_id = id;

-- 删除旧的 id 字段
ALTER TABLE cz_bcq1_log DROP COLUMN id;

-- 将新字段更名为原字段名 id

ALTER TABLE cz_bcq1_log RENAME COLUMN new_id TO id;

-- 最后需要为新的 bigserial 类型字段创建一个序列。PostgreSQL 在创建 bigserial 类型字段时会自动创建对应的序列,因此只需要执行以下命令来获取新序列的名称并在需要时对其进行管理。
SELECT pg_get_serial_sequence('cz_bcq1_log', 'id');


http://www.kler.cn/a/394265.html

相关文章:

  • Mysql数据库里的SSH连接
  • 论文解析:边缘计算网络中资源共享的分布式协议(2区)
  • 数据挖掘(九)
  • 车载空气净化器语音芯片方案
  • 《MYSQL45讲》误删数据怎么办
  • SAP_MM_SD_PP_FICO_视频课程几乎免费送
  • 一文窥见神经网络
  • 【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题
  • Easyui ComboBox 数据加载完成之后过滤数据
  • AutoDL远程连接技巧
  • php preg_match 不到内容,修改pcre.backtrack_limit解决问题
  • elementui el-table中给表头 el-table-column 加一个鼠标移入提示说明
  • Android 关于使用videocompressor库压缩没有声音的问题
  • GOF设计模式中各模式支持的可变方面(封装变化)
  • 远程链接mysql步骤
  • UE5.4 PCG 生成藤蔓墙体
  • Hbase小测
  • 基于Java Springboot快递物流管理系统
  • Leetcode 56-合并区间
  • [JAVAEE] 面试题(五) - HashMap, Hashtable, ConcurrentHashMap
  • 如何确定光伏建设中的最佳安装倾角
  • day08|计算机网络重难点之 DNS查询过程、CDN是什么,有什么作用?、Cookie和Session是什么?有什么区别?
  • 【CSS】opacity 影响 z-index 不生效
  • 【Java语言】String类
  • Spring源码(十二):Spring MVC之Spring Boot
  • PPT技巧:如何合并PPT文件?