mysql迁移到达梦数据库报错:列[xx]长度超出定义

作者在将项目迁移到达梦数据库时遇到字符长度错误,发现达梦以字节为单位而非字符。通过修改字段长度和重新初始化数据库实例,设置VARCHAR以字符为单位,成功解决了大量报错问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的几个项目需要国产化,由于是第一次使用达梦数据库,在迁移的过程中出现了“列[xx]长度超出定义”的报错,经查发现是因为达梦数据库以字节为单位。若是 gb18030 字符集,varchar(2) 才可以存一个汉字;若是 UTF-8 字符集,varchar(3) 才可以存一个汉字。由于报错的地方比较少,我把报错的字段长度改大之后,导入成功了。

在导入第二个数据库的时候,报错的字段特别多,发现挨个改字段大小太不实际了,后来查了一下官方资料,找到了解决方法,需要重新初始化达梦数据库实例,在“初始化参数”中,勾选“VARCHAR类型以字符为单位”。

初始化实例之后,重新导入这两个数据库均没有报错,完美解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值