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

程序连接金仓数据库查询报错:ERROR:column r.id does not exist。字段不存在

要求: 框架源码不能变, 有什么配置可以让项目不查询系统表么?

在适配过程中经常会遇到程序查询目标表报错字段不存在的错误,实际上是因为当前实际查询的表并不是自己的目标表。

报错示例:ERROR:column r.id does not exist

image


情况一(列名确实不存在)

-- 先确认表结构和列名在目标模式下是否存在

\d+ 模式名.表名   -- 在ksql中查看表结构或
SELECT column_name FROM information_schema.columns 
WHERE table_name = '表名' AND table_schema = '模式名';

如果查出来实际模式下并没有目标表,需要先将表导入,再调用程序查询;

如果查出来实际模式下确实存在该目标表,请参考情况二、三


情况二(与系统表重名)

程序查询目标表(例如:sys_user、sys_config等)与金仓数据库系统表重名,程序默认会先查询系统表,所以会报错字段不存在的错误(ERROR:column r.id does not exist)。此时,我们需要将目标表所在的模式优先级提高,提升到public与系统模式之上。

1、首先确认目标表所在的模式以及数据库(例如表是在test库的cms模式下)

2、使用system用户命令行登录test数据库或者使用KStudio连接test库执行以下sql

 alter database 数据库名 SET search_path to “$user”,模式名,public,sys_catalog,sys,pg_catalog;然后执行 select sys_reload_conf();   -----重置配置文件注:数据库名改成test,模式名改成cms,执行时以自己实际库和模式为准。

3、执行之后,不论是命令行还是客户端工具都需要断开重连一下,还是使用system用户登录test库执行show search_path; 确认cms模式是否已经提升优先级。

image

4、此时程序断开重连测试,字段不存在问题已解决。

**注:如果是与系统表重名,不可以使用连接串加?currentSchema='模式名'的方式来指定模式。**


情况三(与其他模式表重名)

在不配置模式优先级的情况下,public模式的优先级比其他普通模式要高。会优先查询public再查询其他模式对象。

如果同一个表,在public模式下和目标模式下都存在,但是结构不一样。这个时候也会报错列名不存在的错误。此时我们需要提高目标模式的优先级

方法一 (同上一步):

alter database 数据库名 SET search_path to “$user”,模式名,public,sys_catalog,sys,pg_catalog;然后执行 select sys_reload_conf();   -----重置配置文件注:数据库名改成test,模式名改成cms,执行时以自己实际库和模式为准。

方法二(url指定模式):

jdbc:kingbase8://ip地址:端口/库?currentSchema='模式名'

image
注:方法一和方法二值可选一种使用,不可同时配置

http://www.rkmt.cn/news/2328.html

相关文章:

  • mysql唯一索引,原理、创建与应用详解
  • redis查询和添加key的最简单方法
  • 111111
  • The 2025 ICPC Asia East Continent Online Contest (I) 7/13 A/B/C/D/G/I/M
  • [PHP之代码审计篇]CTFshowWeb入门 Web301~Web310
  • Kubernetes Pod
  • selenium+browsermobproxy抓POST请求
  • 算法-Dijkstra算法-02 - jack
  • typescript面试题
  • 答题赚现金程序介绍
  • framework中按压power键屏幕熄灭及亮起时流程
  • 易客云会员系统相关介绍
  • FunctionAI 图像生成:简化从灵感到 API 调用的每一步
  • AQS
  • 一、CPU的功能和基本结构
  • 一个简单美观的文件时间修改器
  • 暗黑类游戏属性系统程序设计思路3.0
  • 完整教程:毕设课题:基于Node.js+Express框架+Mysql数据库的助农农产品销售商城设计与实现
  • 经典的混合加密传输协议—PGP
  • cache redis
  • Java的基本数据类型
  • H5游戏性能优化系列-----配置相关优化
  • Codeforces Round 1049 (Div. 2) E
  • 批量设置Excel样式格式(如:纸张大小,排版,字体等)+ 支持windows系统
  • 张瑜:牛市进程之十大观察指标 - Leone
  • Windows 11 系统优化
  • 碎碎念(十六)
  • RK3588+xenomai3+ethercat搭建
  • 【已解决】git push 问题 send-pack: unexpected disconnect while reading sideband packet
  • Adobe Lightroom Classic 2023 中文破解版:摄影师必备的 RAW 图像处理神器(附安装指南)