记一次达梦数据库迁移mysql问题处理记录

1、达梦数据库大小写敏感

迁移数据前,需要确认大小写敏感,因为大小写敏感只能在初始化数据库的时候设置,默认为大小写敏感,一旦设置成功就无法修改,如果想要修改,只能重新初始化实例。

查询大小写是否敏感,结果为 1 是大小写敏感;结果为 0 是不敏感。

SELECT CASE_SENSITIVE();

结果为 1 是大小写敏感: 表名,字段名,字段别名都自动转成了大写,且查询表中的数据时严格区分大小写。查询小写名时需要加双引号。

结果为 0 是不敏感: 表名,字段名,字段别名不会自动转成大写,且查询表中的数据时不区分大小写。

设置大小写不敏感:

初始化实例时需添加此参数(docker部署时添加此变量):
CASE_SENSITIVE=0

达梦数据库大小写敏感介绍阅读以下文档: https://eco.dameng.com/community/training/67109131c40c8aa345d6295070c955ce

需要初始化实例才能生效的参数参考此文档 1.3:

https://eco.dameng.com/document/dm/zh-cn/ops/installation-install

2、非法的基类名[SYSGEO]

创建表时坐标类型的字段,创建失败

处理方法: dmgeo系统包未创建,需执行以下命令创建,在重新迁移

SP_INIT_GEO_SYS(1);

3、违反CHECK约束[CONS134218801]

解决方法:

数据库执行

SP_SET_PARA_VALUE(1,'CHECK_CONS_NAME',0);
COMMIT;
SELECT SF_GET_PARA_VALUE(1,'CHECK_CONS_NAME');

4、记录超长

处理方法:

查看错误数据,找到报错的表启用超长记录