Sql 插入到 Tidb int 字段中 '' Got Error Data Truncated

Sql insert into Tidb int field with '' Got Error Data Truncated

我在 TiDB 中创建了一个 table,有一个 int 字段, 向该字段插入使用值 '' 时,出现错误 'Data Truncated'.

我的代码是这样的:

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 returns ok

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

我的 TiDB 版本是:

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

Git 提交哈希:17c13192136c1f0bf26db6dec994b9f1b43c90f0

Git 分支:release-1.0

UTC 构建时间:2018-01-09 09:07:08

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

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

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