日期:2014-05-16 浏览次数:21038 次
今天发现我太out了,Mysql的对sql的容错能力强大到令人发指:
举个例子:
create table test(
f1? int unsigned,
f2 char(10)
);
?
insert into test(f1,f2) values(-1,'abcdefghijklmnopq');
这条insert语句居然可以被执行,太牛了。原因是它自动把负数替换成了0,把字符自动给截取了。
结果:
f1????? f2
----?? -----
0????? abcdefghij
?
因为我要做数据的ETL,这样得到的数据直接失去了准确性,不利于后边的数据计算、分析。在入库前还是最好采用某种机制把这些不符合规范的数据剔除出来,责令数据来源系统的人员进行整改。