int(2)并不代表int最大只能是255, 
int和varchar不一样,2不代表位数,代表列宽度.如果设置为2 ,到3位的话,还是会将记录插入的.虽然不影响查询,但在涉及到join的时候,可能会出现问题,具体请参看手册. Tinyint(m) 8位整数,占用1个字节(-128~+127) 
smallint(m) 16位整数,占用2个字节(-32768~+32767) 
medimumint(m) 24位整数,占用3个字节(-8388608~+8388607) 
int(m),integer(m) 32位整数,占用4个字节(-2147483648~+2147483647) 
bigint(m) 64位整数,占用8个字节(-9.22E+18 ~ +9.22E+18) 
serial 这其实是bigint auto_increment not null primary key的简写 所以你可以看到,int最大值可为2147483647