pg数据库org.postgresql.util.PSQLException: ERROR: "xxx" is not a sequence
问题场景
对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的更多相关文章
- 【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" ...
- Cause: org.postgresql.util.PSQLException: ERROR: cached plan must not change result type的前因后果
首先说明一下遇到的问题: PG数据库,对其中的某张表增加一列后,应用报错,信息如下: 应用使用相关框架如下:SpringBoot.MyBatis. ### Cause: org.postgresql. ...
- Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer
Springboot项目,使用postgresql数据库,mybatis做持久层框架, <select id="select" resultMap="BaseRes ...
- Postgresql客户端不能远程连接数据库服务器 org.postgresql.util.PSQLException:
Postgresql安装完成之后,默认情况下是不允许远程客户端直接连接的,并且默认的监听配置文件里边,监听的服务器地址是127.0.0.1即:localhost 报如下错误: org.postgres ...
- org.postgresql.util.PSQLException: 栏位索引超过许可范围:3,栏位数:2。
org.postgresql.util.PSQLException: 栏位索引超过许可范围:3,栏位数:2. 今天在写完SQL进行查询的时候,后台一直报错显示上面的信息.看错误完全不知道原因,就重新检 ...
- org.postgresql.util.PSQLException:致命:抱歉,已经有太多客户了(org.postgresql.util.PSQLException: FATAL: sorry, too many clients already)
我正在尝试连接到Postgresql数据库,我收到以下错误: 错误:org.postgresql.util. PSQLException:致命:抱歉,已经有太多客户 错误是什么意思,我该如何解决? 我 ...
- 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 ...
- Caused by: org.postgresql.util.PSQLException: 错误: 语法错误 在 "desc" 、语法错误 在 "from" 附近
此错误一般是由于postgres的数据库表字段名定义与关键字重名所致: 如下,创建的数据库表包含名称为“desc”的字段与倒叙查询的desc关键字冲突会导致Caused by: org.postgre ...
- Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12
Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12. 这个报错的原因是在mapper文件中的sql语书写错误 <inse ...
随机推荐
- MongoDB 带访问控制的副本集部署
当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4 Centos6.5 一. 下载安装 MongoDB Server 及 ...
- kali系统语言设置
一.背景信息在安装完 kali linux 2020.1 时,其操作系统默认语言为英文的,我们操作起来比较麻烦,为了以后操作方便起见,这边将其操作系统默认语言更改为中文.本篇文章将带领各位小伙伴们一起 ...
- [Java]程序运行时的内存分配
本文出处:<Thinking in JAVA> 寄存器这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部.但是寄存器的数量极其有限,所以寄存器根据需求进行分配.你不能直接控制 ...
- RENIX使用模板创建报文——网络测试仪实操
一.简介 RENIX内置多种报文模板,可以直接用来创建一个报文,节省时间 二.操作步骤 1.准备工作:连接机框,占用端口 2.新建或者编辑流 3.切换到 数据包/编辑 界面:点击创建新协议报文 4.在 ...
- nmtui解决network-scripts目录下无网卡对应配置文件问题
1.问题出现的原因设备先安装了操作系统,后插上网卡到设备,就会出现/etc/sysconfig/network-scripts目录下无该网卡对应配置文件的问题,但是ifconfig命令能看见系统给该网 ...
- Keepalived非抢占模式配置
一.前言 HA的实际运行过程中,当主机发生异常,且后期恢复正常后,存在抢占或非抢占两种情况. 结合实际需求,可能有很多用户需要非抢占的HA工作模式.keepalived能够很好的支持这一需求. 二.k ...
- 【C#硬件角度理解代码】函数
函数的执行过程
- Map格式-joson格式
mapStr: {CHAR=UTF-8, DATA=eyJNRVJDSEFOVCI6IjEwMDEiLCJWRVJTSU9OIjoiMS4wLjAiLCJUUkFERSI6IjIwMTgwNjEyMT ...
- Java多线程编程核心技术---多线程技能
1.继承Thread /** * Copyright (C), 2018-2018, * FileName: MyThread * Author: 大象 * Date: 2018-06-08 22:3 ...
- visual studio 快捷键重置及设置
https://blog.csdn.net/glw0223/article/details/93195009