我在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
答案 0 :(得分:0)
在您呈现的情况下,TiDB的行为与MySQL相同。此错误是由严格的SQL模式引起的。作为解决方法,您可以:
set @@sql_mode='';
INSERT INTO test(i1,s1) VALUES ('','aa');