改为bigint(255)你的数据用不到这么大吧

解决方案 »

  1.   

    如果你步进为1的递增的话,一个表用到 int(11) 条记录,你认为情况会怎么样?
      

  2.   

    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
      

  3.   

    是当int用超过限制的时候才能用bigint吗?还是当INT满的时候就自动转换能bigint?
      

  4.   

    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
      

  5.   

    设置int类型后不需要指定宽度,但要注意该类型的上限值。此外可以设置成unsigned以提高上限。