MySql插入一个大于允许限制的值

时间:2016-01-12 00:07:27

标签: mysql

我的SQL如下:

create table test (
id tinyint unsigned,
id2 smallint unsigned
);

insert into test values ( 333, 66666);

select * from test

+------+-------+
| id   | id2   |
+------+-------+
|  255 | 65535 |
+------+-------+

我知道tinyint的最大值为255,smallint的最大值为65,535。我很好奇的是上面的结果是如何产生的。

1 个答案:

答案 0 :(得分:4)

http://dev.mysql.com/doc/refman/5.7/en/insert.html

  

将数字列设置为位于列外部的值   范围。该值将被剪切到该范围的最近端点。

你也应该看到有关此问题的警告。请注意,在STRICT模式下,除非您使用INSERT IGNORE,否则error会失败。