发现mysql定义的数据类型不管用,定义的整数1位,也可以插入多位数字
create table t1 (id int(1));
insert into t1 (id) values (-1); #结果 -1
insert into t1 (id) values (-123); #结果 -123
insert into t1 (id) values (-12345);#结果 -12345
insert into t1 (id) values (23); #结果 23
insert into t1 (id) values (12345); #结果 12345
完全不报错,可以正常写入!
这是为啥,这么不严谨么,难道是为了容错!
又继续试了一下:
drop table t1;
create table t1 (id varchar(1));
insert into t1 (id) values ('-1'); #结果 -
insert into t1 (id) values ('aa'); #结果 a
insert into t1 (id) values (23); #结果 2 不报错
insert into t1 (id) values (123); #结果 1 不报错
drop table t1;
create table t1 (id char(1));
insert into t1 (id) values ('-1'); #结果 "-"
insert into t1 (id) values ('aa'); #结果 a
insert into t1 (id) values (23); #结果 2 不报错
insert into t1 (id) values (123); #结果 1 不报错