tidbv4.0.1
修改一个字段从char 到varbinary ,报错如下,请问是什么原因 ?
我添加这个类型的字段没问题,但是change column 到这个类型就报错了
不支持从 char 变更到 varbinary,可以 add column 来增加 varbinary 类型字段,防止数据出现截断等风险‘
上游业务的字段变更,通过dm 同步过来的报错。这种情况有什么好的解决办法么,能解决业务修改字段的需求。从varchar1000 变成varbinary(1000) .
因为 tidb 已经限制了不能进行有损的变更,修改成varbinary 是往变大的方向变更,不应该再限制吧。这样对上游业务修改字段的操作太不友好了。
– 如下是同步的报错信息
“Message”: “execute statement failed: ALTER TABLE spamcenter
.audit_cinfo
CHANGE COLUMN ac_ext
ac_ext
VARBINARY(1000) NOT NULL DEFAULT ‘[]’ COMMENT ’ json’:
Error 8200: Unsupported modify charset from utf8 to binary”,
这种 varchar 转 varbinary 本质上就是 charset 的变换。如果上游进行了变更导致 DM 同步停止的话。建议可以添加新的 column 然后同步两个 column 的值 。最后再跳过 DM 的报错。DM 跳过的方式可以参考:
https://docs.pingcap.com/zh/tidb-data-migration/dev/skip-or-replace-abnormal-sql-statements#跳过或替代执行异常的-sql-语句
好的明白。多谢。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。