mysql数据库切换成kingbase(人大金仓)数据库时遇到的字段不存在问题

一、问题描述

mysql数据库切换成国产数据库人大金仓(kingbase)数据库的遇到的字段不存在的问题,根本原因其实是没有找到相对应的表,报错示例如下图所示:

二、问题解决

1、如果所有的表都发生上述的错误,kingbase的表在xml里面写sql的时候需要带上空间名的前缀,比如public.tableName,不然的话会找不到相应的表,当然了可以直接对kingbase的数据库做统一处理,处理步骤如下:
第一步更改数据库的配置

java 复制代码
ALTER DATABASE 数据库名 SET search_path to "$user", public, sys, sys_catalog, pg_catalog;

第二步重载配置文件

java 复制代码
select sys_reload_conf(); 

第三步可以看下是否生效

java 复制代码
show search_path;

2、如果你的项目中有user表,并且其它表正常,只有user表发生这样的错误,原因是,kingbase中user是一个关键字,你的表名和关键字冲突了,解决方法如下:
方法一: sql中user表加双引号,即:user修改成"user"
方法二: sql中user表前面加上空间名,即:user修改成public.user

相关推荐
孤独天狼2 分钟前
redis面试题
数据库·redis·缓存
hk112411 分钟前
【Hardware/Robotics】2026年度多态硬件重构与自主机器人内核基准索引 (Benchmark Index)
开发语言·数据库·机器人·嵌入式·硬件开发
宇宙的尽头是PYTHON12 分钟前
最简单的sql求最大值
数据库·sql
DBA小马哥28 分钟前
达梦VS金仓:Oracle国产替代深度对比
数据库·oracle·kingbasees·金仓数据库
最贪吃的虎1 小时前
【分布式】分布式事务框架 Seata 详解:架构与四种实现模式
java·开发语言·数据库·分布式·后端·架构
·云扬·1 小时前
sysbench压测实战指南:从硬件到MySQL性能评估
数据库·mysql
AscendKing1 小时前
获取 MySQL 表中字段的最长长度
数据库·mysql
nuowenyadelunwen1 小时前
Harvard CS50 week 7 Notes
数据库
Mr. zhihao1 小时前
一次「varchar 时间字段」导致的 MySQL 索引选择问题实战分析
数据库·mysql
manuel_897571 小时前
三 数据库系统
数据库·oracle