我对 MySql 中的数据类型长度有点困惑;我阅读了参考手册http://dev.mysql.com/doc/refman/5.0/en/data-types.html http://dev.mysql.com/doc/refman/5.0/en/data-types.html我知道当我写“INT(M)”时......
M表示整数类型的最大显示宽度。对于浮点和定点类型,M 是可以存储的总位数。对于字符串类型,M 是最大长度。 M 的最大允许值取决于数据类型。
然后,我在表中添加了一列,其字段数据类型如 INT(10) [not unsigned],我知道最大值是 -2147483648 / 2147483647
然而,如果我将其编辑为 INT(11),MySQL 允许我设置更大的长度,尽管长度超出了范围,但不会出现任何错误;在这种情况下,只有当我设置的值大于 2147483647 时才会出现错误,为什么之前不呢?
先感谢您,
Max
The M
值不会影响您可以存储的数字范围。您可以将相同的数字保存在INT(1)
as in INT(30)
。数量只影响ZEROFILL行为 http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html#id2839266.
mysql> CREATE TEMPORARY TABLE foobar(x INT(40) ZEROFILL);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO foobar(x) VALUES (42);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM foobar;
+------------------------------------------+
| x |
+------------------------------------------+
| 0000000000000000000000000000000000000042 |
+------------------------------------------+
1 row in set (0.00 sec)
mysql>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)