Sql插入到Tidb int字段,并且''错误数据被截断

时间:2018-04-19 03:56:05

标签: tidb

我在TiDB中创建一个带有int字段的表, 在此字段中插入使用值''时,我收到错误'数据截断'。

我的代码是这样的:

CREATE TABLE test(
i1 INT(11),
s1 VARCHAR(16)
)

INSERT INTO test(i1,s1) VALUES ('11','aa');   //ok

INSERT INTO test(i1,s1) VALUES ('','aa');    //Error 'Data Truncated'

INSERT INTO test(i1,s1) VALUES (NULL,'aa') //ok

在mysql 5.7中,以下sql返回ok

INSERT INTO test(i1,s1) VALUES ('','aa');

我的TiDB版本是:

发行版本:v1.0.6-1-g17c1319

Git Commit Hash:17c13192136c1f0bf26db6dec994b9f1b43c90f0

Git Branch:release-1.0

UTC Build Time:2018-01-09 09:07:08

https://github.com/pingcap/tidb/issues/6317

1 个答案:

答案 0 :(得分:0)

在您呈现的情况下,TiDB的行为与MySQL相同。此错误是由严格的SQL模式引起的。作为解决方法,您可以:

set @@sql_mode='';
INSERT INTO test(i1,s1) VALUES ('','aa');