【 TiDB 使用环境】测试
【 TiDB 版本】 8.1.0
【复现路径】
– 初始化结构mysql/tidb:
CREATE TABLE t2
(
id
int(11) NOT NULL,
dt
datetime DEFAULT NULL,
c1
int(11) DEFAULT NULL,
PRIMARY KEY (id
)
);
– a. 正常int类型在mysql或者tidb测试插入字符则会报下述异常:
– mysql: Incorrect integer value: ‘b’ for column ‘c1’ at row 1
– tidb: Truncated incorrect DOUBLE value: ‘b’
– b. 错误将下游的c1改为varchar,此时dm任务不报错,由于存在兼容数据展示未错乱
–tidb: alter table t2 modify c1
varchar(20) DEFAULT NULL;
insert into t2 select 1,now(),1;
select * from t2;
– c. 错误将上游的c1改为varchar,而下游的c1依旧是int时,此时dm任务不报错,字符串的数据在下游存在错乱
– mysql:alter table t2 modify c1
varchar(20) DEFAULT NULL;
– tidb: alter table t2 modify c1
int(11) DEFAULT NULL;
insert into t2 select 3,now(),‘123’;
insert into t2 select 2,now(),‘b’;
select * from t2;
问题:
遇到字段类型不一致情况,dm并未报错,这个问题请问有人遇到过么,比如是否有什么地方可以设置为严格模式呢,谢谢