问题场景

对pg数据表执行插入语句的时候,报错如下:

{
"timestamp": 1587012576734,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.jdbc.BadSqlGrammarException",
"message": "Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: \"region_info\" is not a sequence\r\n### The error may involve com.hikvision.ctm01taskapp.modules.mapper.RegionDao.insertRegion-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into region_info ( create_time, update_time, isvalid, region_code, name, region_path, region_level, sort, geometry ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: org.postgresql.util.PSQLException: ERROR: \"region_info\" is not a sequence\n; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: \"region_info\" is not a sequence",
"path": "/ctm01taskapp-web/region/insertRegion"
}
org.postgresql.util.PSQLException: ERROR: \"region_info\" is not a sequence
由于以前没用过pg数据库,从来没遇到过这个问题,百度得知sequence是pg数据库中用于主键自增长的,于是考虑应该是insert插入时自增长的id主键插入报错,拉出建表源代码:
CREATE TABLE public.region_info (
id int4 NOT NULL, -- 数据库自增id
create_time timestamp NULL DEFAULT now(), -- 入库时间
update_time timestamp NULL DEFAULT now(), -- 更新时间
isvalid int2 NULL, -- 0.否;1.是,默认为1
region_code varchar(64) NULL, -- 行政区划编码
parent_region_code varchar(64) NULL, -- 父编码
"name" varchar(64) NULL, -- 行政区划名称
region_path varchar(255) NULL, -- 行政区划路径
region_level int2 NULL, -- 层级
sort int2 NULL, -- 排序
geometry text NULL,
CONSTRAINT region_info_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE public.region_info IS '行政区划信息表';
id int4 NOT NULL, -- 数据库自增
果然有问题,id并没有实现递增。于是修改sql代码如下:
--创建一个sequence   seq_region_info
create sequence seq_region_info increment by 1 minvalue 1 no maxvalue start with 11;
--将需要自增的主键id与seq_region_info关联
ALTER TABLE public.region_info ALTER COLUMN id SET DEFAULT nextval('seq_region_info'::regclass);

至此,id便可以实现自增了

												

pg数据库org.postgresql.util.PSQLException: ERROR: "xxx" is not a sequence的更多相关文章

  1. 【hibernate postgresql】注解@TypeDef/@Enumerated/数据库字段gender为枚举类型,从前台接受到实体后进行保存报错:org.postgresql.util.PSQLException: ERROR: column "gender" is of type gender but expression is of type character varying

    数据库字段gender为枚举类型,从前台接受到实体后进行保存报错:org.postgresql.util.PSQLException: ERROR: column "gender" ...

  2. Cause: org.postgresql.util.PSQLException: ERROR: cached plan must not change result type的前因后果

    首先说明一下遇到的问题: PG数据库,对其中的某张表增加一列后,应用报错,信息如下: 应用使用相关框架如下:SpringBoot.MyBatis. ### Cause: org.postgresql. ...

  3. Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer

    Springboot项目,使用postgresql数据库,mybatis做持久层框架, <select id="select" resultMap="BaseRes ...

  4. Postgresql客户端不能远程连接数据库服务器 org.postgresql.util.PSQLException:

    Postgresql安装完成之后,默认情况下是不允许远程客户端直接连接的,并且默认的监听配置文件里边,监听的服务器地址是127.0.0.1即:localhost 报如下错误: org.postgres ...

  5. org.postgresql.util.PSQLException: 栏位索引超过许可范围:3,栏位数:2。

    org.postgresql.util.PSQLException: 栏位索引超过许可范围:3,栏位数:2. 今天在写完SQL进行查询的时候,后台一直报错显示上面的信息.看错误完全不知道原因,就重新检 ...

  6. org.postgresql.util.PSQLException:致命:抱歉,已经有太多客户了(org.postgresql.util.PSQLException: FATAL: sorry, too many clients already)

    我正在尝试连接到Postgresql数据库,我收到以下错误: 错误:org.postgresql.util. PSQLException:致命:抱歉,已经有太多客户 错误是什么意思,我该如何解决? 我 ...

  7. Try setting a different JdbcType for this parameter or a different configuration property. Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:2,栏位数:1

    执行mybaits sql <delete id="delete4BatchesByLineCi" parameterType="java.util.List&qu ...

  8. Caused by: org.postgresql.util.PSQLException: 错误: 语法错误 在 "desc" 、语法错误 在 "from" 附近

    此错误一般是由于postgres的数据库表字段名定义与关键字重名所致: 如下,创建的数据库表包含名称为“desc”的字段与倒叙查询的desc关键字冲突会导致Caused by: org.postgre ...

  9. Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12

    Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12. 这个报错的原因是在mapper文件中的sql语书写错误 <inse ...

随机推荐

  1. [c语言]c语言中的内存分配[转]

    在任何程序设计环境及语言中,内存管理都十分重要.在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的.因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题. 第1节主要介绍内存管理基本概念,重 ...

  2. 📚 选择排序和插入排序区别-DS笔记

    选择排序法 A[i...n)未排序,A[0...i)已排序 A[i...n]中最小值要放到A[i]的位置 复杂度 \(O(n^2)\) 第一层循环n次 第二层循环:i=0,n次:i=1,n-1次... ...

  3. 使用helm安装nfs-subdir-external-provisioner实现动态创建存储

    存储组件 nfs-subdir-external-provisioner 是一个存储资源自动调配器,它可用将现有的 NFS 服务器通过持久卷声明来支持 Kubernetes 持久卷的动态分配.此组件是 ...

  4. C#CancellationToken/CancellationTokenSource-取消令牌/取消令牌源 CT/CTS

    详细情况:https://www.cnblogs.com/wucy/p/15128365.html 背景 为什么引入取消令牌? Thread.abort()方法会破坏同步锁中代码的原子逻辑,破坏锁的作 ...

  5. tunneling socket could not be established, cause=connect ECONNREFUSED 127.0.0.1:56281 npm ERR! network This is most likely not a problem with npm itself npm ERR! network and is related to network

    tunneling socket could not be established, cause=connect ECONNREFUSED 127.0.0.1:56281npm ERR! networ ...

  6. JVM上篇:JVM与Java体系结构

    JVM笔记 JVM传言 Java不是最强大的语言,但是JVM是最强大的虚拟机 虚拟机分类 系统虚拟机 类似VMware,就属于系统虚拟机,它提供了一个可运行完整操作系统的平台 程序虚拟机 Java虚拟 ...

  7. Python 学习路线(2022)

    原文链接: Python 学习路线(2022) 前几天整理了一份 Go 学习路线(2022),广受好评.那么趁火打劫,不是,是趁热打铁,又整理了一份 Python 学习路线. 内容依然是从入门到进阶, ...

  8. 【阅读SpringMVC源码】手把手带你debug验证SpringMVC执行流程

    ✿ 阅读源码思路: 先跳过非重点,深入每个方法,进入的时候可以把整个可以理一下方法的执行步骤理一下,也可以,理到某一步,继续深入,回来后,接着理清除下面的步骤. ✿ 阅读本文的准备工作,预习一下Spr ...

  9. js json.stringfy()和json.parse()的用法

    1.JSON.parse;作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)语法:JSON.parse(text [, reviver])text 必选. 一个有效的 J ...

  10. CentOS Linux服务器 挂载硬盘

    1.通过fdisk -l 查看目前的硬盘信息,默认是从sda开始排,增加第二块硬盘的时候,会显示sdb,以此类推,我的是vda,vdb,以自己实际的为主,下面以sda,sdb 讲解 2.添加硬盘3.重 ...