记人大金仓kingbase迁移mysql数据库遇到的问题

1、SQL 错误 [42P01]: ERROR: relation "CHECK_PARAM" does not exist
解决:非PUBLIC表,无需迁移

2、SQL 错误 [42809]: ERROR: "dblink_pkey_results" is a composite type
解决:使用了错误的方式调用数据库对象

3、Error at index 2 in: "07+08" ABSTIME 带时区的日期格式转换

解决:

1)查询到kingbase数据库之前使用的时区UTC:XXXX+08

2)查询到Mysql数据库的时区是GMT

3)已知UTC和GMT时区,在时间上没有区别,所以直接把旧表拷贝一份备份表,字段类型改成TIMSTAMP自动去掉了时区后缀再用备份表迁移过来

4)后端Mysql数据库链接配置文件要设置永久时区为GMT:

4、SQL 错误 [1071] [42000]: Specified key was too long; max key length is 3072 bytes
语法错误或者违反接入规则

解决:主键长度减少到64

5、不能识别的字段类型:“BPCHAR“

解决: BPCHAR是VARCHAR的别名,改用VARCHAR

6、SQL 错误 [1426] [42000]: Too-big precision 131089 specified for 'TRY_TIMES'. Maximum is 65.
解决:DECIMAL最大精度减少到65

7、SQL 错误 [1292] [22001]: Data truncation: Incorrect datetime value: '1820-01-01 18:20:00' for column 'DDSJ' at row 1

解决:日期过于“历史”,字段值改成正确范围内的日期后再迁移

8、无主键的表无法修改数据:
解决:设置主键后再修改

ALTER TABLE PUBLIC.ZHZX_SPXJ ADD CONSTRAINT ZHZX_SPXJ_PKEY PRIMARY KEY(OBJUID)

附:迁移后的mybaties后端连接MySQL数据源后遇到的问题

9、java.sql.SQLSyntaxErrorException: Every derived table must have its own alias

MySQL要求每个派生表都必须有自己的别名:(派生表指FROM 子句中的子查询)
解决:在子查询语句括号外层添加一个空格和别名

10、Duplicate column name 'create_by_orgin'
MySQL严格校验查询出来的字段不能重复
解决:select语句去掉重复的字段名

11、You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'describe  ……
MySQL的执行语句中,表字段不能用关键字describe
解决:sql代码给describe加单引号

12、bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Column 'create_by_dept' specified twice

MySQL严格校验不能有重复的字段
解决:insert语句去掉重复的字段名

13、org.springframework.jdbc.BadSqlGrammarException: 
### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"sheet_id" = info."sheet_id"
        WHERE info.sheet_id = '7cf0e44961d14b49944c' at line 6

MySQL语句的表名、字段名不能有双引号

解决:去掉双引号

14、统计出来的数量不一样,排查出问题出现在length函数的区别:MySQL中,返回字符串的字节长度。 KingbaseES返回字符串的字符长度。

解决:length函数换成char_length
 

参考网址:

KingbaseES与MySQL的兼容性说明 — KingbaseES产品手册


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值