首页 > 数据库 >PostgreSQL. 异常“more than one owned sequence found”的解决方案

PostgreSQL. 异常“more than one owned sequence found”的解决方案

时间:2023-12-23 10:45:08浏览次数:43  
标签:java sequence owned id found org PostgreSQL

一、异常信息描述

执行数据库操作时,主键id没有自增,且报“more than one owned sequence found”的异常,造成数据没有insert进去,下面是详细的异常信息:

java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.manage.quartz.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:61)
    at com.manage.quartz.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:33)
    at com.manage.quartz.util.QuartzJobExecution.doExecute(QuartzJobExecution.java:17)
    at com.manage.quartz.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:43)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: org.springframework.jdbc.UncategorizedSQLException: 
### Error updating database.  Cause: org.postgresql.util.PSQLException: 错误: more than one owned sequence found
### The error may involve com.manage.provided.mapper.DispatchHisMapper.insertDispatchHis-Inline
### The error occurred while setting parameters
### SQL: insert into t_dispatch_his          ( pump_id,             pump_name,             region_id,                          value,             date )           values ( ?,             ?,             ?,                          ?,             ? )
### Cause: org.postgresql.util.PSQLException: 错误: more than one owned sequence found
; uncategorized SQLException; SQL state [XX000]; error code [0]; 错误: more than one owned sequence found; nested exception is org.postgresql.util.PSQLException: 错误: more than one owned sequence found
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.mybatis.spring.MyBatisException

而且,使用 Navicat 客户端手动插入一条数据时,也是弹框报错“more than one owned sequence found”。

二、解决方案安排

1、首先,查询重复的 “SEQUENCE”,查询语句如下:
SELECT 'DROP SEQUENCE "'||c.relname||'";' FROM pg_class c WHERE c.relkind ='S'
ORDER BY c.relname

查询结果如下图

找到重复的““SEQUENCE””对象,然后使用该删除语句进行删除。如:DROP SEQUENCE "t_dispatch_hist_id_seq";

执行完这步,就可以插入数据了,但是id自动会从1重新开始,下面我们来重置下id自增的起始数字。

2、重置下id自增的起始数字

根据表名查询对应的"SEQUENCE",sql如下:

select pg_get_serial_sequence('t_dispatch_his', 'id');

这样,就可以根据表名称查询出来对应的"SEQUENCE",进行下一步的操作。

3、重新设置id主键自增

根据项目需求,重新设置id主键的自增起始,代码如下:

ALTER SEQUENCE public.t_dispatch_his_id_seq RESTART WITH 773;

ok,经过上面的一些列操作,"more than one owned sequence found"的异常就被消灭掉了,可以愉快的去吃午饭了

标签:java,sequence,owned,id,found,org,PostgreSQL
From: https://www.cnblogs.com/bigron/p/17922729.html

相关文章

  • zabbix5.0监控postgresql13.6
    环境描述zabbix版本:5.0.12PG版本:13.6监控需求监控postgresql运行情况(非核心业务,主要监控挂没挂)监控流复制运行情况如有异常,则告警具体步骤在postgresql上创建监控用户,授权,并配置pg_hba.conf文件允许通过该用户去访问到zabbix的网站上下载监控脚本将脚本部署在po......
  • [Codeforces] CF1811E Living Sequence
    CF1811ELivingSequence这道题洛谷题解的思路比我的更好,可以参考一下题解,但是没人提到我这种做法题意给定一个正整数\(k\)\((1\lek\le10^{12})\),请你输出第\(k\)个数字里没有4的正整数。思路设\(f_i\)表示前\(10^i\)个\(i\)位数里边不含4的数的个数,列举几个如......
  • [Codeforces] CF1817A Almost Increasing Subsequence
    CF1817AAlmostIncreasingSubsequence题意给定长度为\(n\)一个序列\(a\)以及\(q\)次询问,每次询问给出\(l\)和\(r\),找出序列\(a\)在\([l,r]\)内最长的几乎递增子序列。对于几乎递增的定义:如果一个序列中不存在连续的三个数\(x\),\(y\),\(z\),使得\(x\gey\ge\......
  • PostgreSQL从入门到精通教程 - 第39讲:数据库完全恢复
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第39讲:数据库完全恢复 PostgreSQL第39讲:12月23日(......
  • centos7上源码安装postgresql 13.6
    1环境描述操作系统:Centos7.6postgresql:13.6安装方式:源码安装2创建用户#groupadd-g2000pgsql#useradd-u2000-gpgsqlpgsql3目录规划#mkdir-p/postgresql/{pgdata,archive,scripts,backup,pg13,soft,pg_log}#chown-Rpgsql:pgsql/postgresql#......
  • postgresql常用创建用户和授权
    需求(1)给用户a创建一个数据库,并且给a用户对这个库有所有权限(2)给read_a用户对这个数据库有只读权限步骤1.创建用户a2.创建数据库db_a,并设置owner为a3.回收默认的publicschemacreate权限4.设置db_a的publicschema默认的owner为a5.创建只读用户read_a6.用a用户给read_a......
  • 论文阅读-Self-supervised and Interpretable Data Cleaning with Sequence Generativ
    1.GARF简介代码地址:https://github.com/PJinfeng/Garf-master基于SeqGAN提出了一种自监督、数据驱动的数据清洗框架——GARF。GARF的数据清洗分为两个步骤:规则生成(RulegenerationwithSeqGAN):利用SeqGAN学习数据中的关系(datarelationship)。然后利用SeqGAN中......
  • Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
    场景Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/135090263上面讲了基本语法,下面记录游标、自定义函数、存储过程的使用。注:博客:https://blog.csdn.net/badao_liumang_qizhi......
  • Newtonsoft.Json.JsonReaderException:“Bad JSON escape sequence: \*. Path '****'
    测试Json字符串msg:{"field1":"\\\9527\","field2":"\\\\\data\\","field3":"\r\n\\\G\\\d\\\","field4":"TESTTEST\\1TEST\\\GTEST\\\\GTEST2\\\\\TEST3\\......
  • PostgreSQL中的事务隔离级别
    PostgreSQL中的事务隔离级别在确保多用户数据库环境中的数据一致性、完整性和并发控制方面起着至关重要的作用。当多个事务并发执行时,隔离级别定义了它们之间的相互隔离的程度。PostgreSQL提供了一系列的隔离级别,每个级别都有自己的一套保证和权衡,允许开发人员根据特定的需求定制......