当前位置: 代码网 > it编程>数据库>Mysql > mysql迁移达梦列长度超出定义的简单解决方法

mysql迁移达梦列长度超出定义的简单解决方法

2024年12月13日 Mysql 我要评论
一、问题概述mysql迁移达梦遇到列长度超出定义,错误如下造成此错误原因是达梦存放不下mysql迁移过来的字符串,在早期版本8.1.3.162之前,通过设置length_in_char=1来进行规避,

一、问题概述

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迁移达梦列长度超出定义内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com