mysql迁移达梦列长度超出定义的简单解决方法
一、问题概述
mysql迁移达梦遇到列长度超出定义,错误如下

造成此错误原因是达梦存放不下mysql迁移过来的字符串,在早期版本8.1.3.162之前,通过设置length_in_char=1来进行规避,但是这种方式实际上扩大了数据精度,造成能存放超过设置的长度的数据。
在8.1.3.162版本之后,取消了此参数,length_in_char无法设置 只能为0 ,因为达梦底层是以字节单位存储,mysql是以字符,通过迁移工具迁移到达梦会出现varchar char长度不够的问题。
二、解决办法
2.1、问题复现
length_in_char=0的情况下(新版本取消,此参数只能是0) 字符集UTF8情况下
比如 mysql varchar(10) 能存放10个中文 ,到达梦varchar(10)只能存放三个中文,UTF8字符集 一个中文占用三个字节。
但是可以通过 将varchar(10)修改成varchar(10 char)强制为字符存储,到达梦也能存放10个中文字符
2.2 迁移工具设置
在迁移工具中设置映射关系
第一步:设置数据类型映射

第二步:配置映射关系

在选择迁移对象界面查看表结构是否转换


第三步:开始迁移

总结
到此这篇关于mysql迁移达梦列长度超出定义解决方法的文章就介绍到这了,更多相关mysql迁移达梦列长度超出定义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解远程连接Mysql数据库的问题(ERROR 2003 (HY000))
本篇文章是对远程连接Mysql数据库的问题进行了详细的分析介绍,需要的朋友参考下2013-06-06
MySQL中SQL连接操作左连接查询(LEFT JOIN)示例详解
这篇文章主要给大家介绍了关于MySQL中SQL连接操作左连接查询(LEFT JOIN)的相关资料,左连接(LEFT JOIN)是SQL中用于连接两个或多个表的一种操作,它返回左表的所有行,并根据连接条件从右表中匹配行,需要的朋友可以参考下2024-12-12


最新评论