日期:2014-05-16  浏览次数:21038 次

Mysql的容错能力果然很强大

今天发现我太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,这样得到的数据直接失去了准确性,不利于后边的数据计算、分析。在入库前还是最好采用某种机制把这些不符合规范的数据剔除出来,责令数据来源系统的人员进行整改。