我在mysql中有一个表如 mysql.table_a 字段 name varchar(20) (存储的中文)
在doris中建表doris.table_a 字段 name varchar(20)
在mysql name 字段长度用完20的情况下 插入doris 会报错 字段长度不足 把doris中name 改成 varchar(30)就可以了。
不知道是不是两边字符集不一样 doris可能用的UTF-8 所以中文会占用三个字符导致长度不够。
有没有大佬能知道是否是这个问题。
这个问题是由于Doris在DDL的时候,指定的字段长度过小导致的,
解决方案有两个:
1.建议建表的时候使用String 类型建表,
2.如果要忽略该错误,并且对数据准确度没有太高的要求,可以使用在建表前加上以下命令:
SET enable_insert_strict = false;
该命令将忽略掉类似字段过长插入不进去的错误,但是会导致该数据被抛弃掉
1 个赞
是的,就是字符占用长度逻辑的区别,我们这边实践中统一把mysql的varchar长度 * 3 = doris 中varchar 的长度