日期:2014-05-16  浏览次数:20741 次

MySQL数据表的问题 谢了
CREATE   TABLE   `messages`   (
    `message_id`   int(11)   NOT   NULL   auto_increment,
    `account_id`   int(11)   NOT   NULL,
    `sender_id`   int(11)   NOT   NULL,
    `message`   varchar(500)   NOT   NULL,
    `reg_timestamp`   int(11)   default   '0 ',
    `read_timestamp`   int(11)   default   '0 ',
    PRIMARY   KEY     (`message_id`)
)   ENGINE=MyISAM   AUTO_INCREMENT=3   DEFAULT   CHARSET=utf8;

int(11)的11是指的什么意思,是11位数吗
但是int最大是4294967295才10位数
为什么写成int(11)呢?
感谢

------解决方案--------------------
int(11)的意思是最大长度为11位 (MySQL完全手册第44页这么说的)

但是如果在插入时这个栏位的值为2000000000000,系统会自动处理得到一个不正确的数字。


------解决方案--------------------
这个代表显示宽度。

整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。
------解决方案--------------------
恩,对,比如-1234567890 11位。如果你指定了unsigned那么最多就是10位了