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

相关推荐
JoneBB4 分钟前
ABAP Webservice连接
运维·开发语言·数据库·学习
解决问题no解决代码问题9 分钟前
从乱码到脱敏导出:TiDB CSV 导出实战全指南
数据库
未若君雅裁22 分钟前
MySQL高可用与扩展-主从复制读写分离分库分表
java·数据库·mysql
2401_8676239827 分钟前
CSS Flex布局中如何设置子元素间距_掌握gap属性的现代用法
jvm·数据库·python
月落归舟33 分钟前
一篇文章了解Redis内存淘汰机制与过期Key清理
数据库·redis·mybatis
phltxy1 小时前
Redis 事务
数据库·redis·缓存
康乾隆1 小时前
SQL Server Always On 重新添加从库步骤
数据库·sqlserver
环流_2 小时前
redis核心数据类型在java中的操作
java·数据库·redis
雨辰AI2 小时前
SpringBoot3 项目国产化改造完整流程|从 MySQL 到人大金仓落地
java·数据库·后端·mysql·政务
一个天蝎座 白勺 程序猿2 小时前
存储治理:表空间自动目录创建与国产操作系统生态适配
数据库·kingbasees