手册里说是显示宽度,不理解……
MYSQL里可以定义一个列的宽度吗?然后如果数据超过那个宽度就只显示5位这样??

解决方案 »

  1.   

    从数据库设计角度,这个5没有任何意义,这个字段仍然是 INT, 4 字节。但如果你使用的是MYSQL自带的工具,则起显示上的宽度设置作用。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  2.   

    mysql> create table test(a int(5) zerofill);
    Query OK, 0 rows affectedmysql> insert into test values(1);
    Query OK, 1 row affectedmysql> select * from test;
    +-------+
    | a     |
    +-------+
    | 00001 |
    +-------+
    1 row in set
    当设置zerofill时候显示出来的数据用0填充到指定宽度和底层存储完全没有关系
      

  3.   

    原来是这样,tinyint(3) 和 tinyint(5)都对字段容量没有关系,那定义的字段后面()中的内容都是这个意思么
      

  4.   

    int(5),这个5确实是没有多少意义,只是在写入记录的时候,不足五位则自动在前面补'特殊符号',以填满五位,而int实际占用的还是4个字节的空间,所以在设计数据库的时候,这算是一个得注意的地方了,很多人对这个不理解