见http://dev.mysql.com/doc/refman/8.0/en/numeric- types.html
INT
是一个四字节有符号整数。
BIGINT
是一个八字节有符号整数。
它们各自接受的值不超过可以存储在其各自字节数中的值。表示中的2 32个值INT
和中的2 64个值BIGINT
。
20 in INT(20)
和BIGINT(20)
几乎没有任何意义。这是显示宽度的提示。它与存储无关,也与列将接受的值的范围无关。
实际上,它仅影响以下ZEROFILL
选项:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
对于MysqL用户来说,看到INT(20)
并假设它是一个大小限制(类似于)是一个常见的困惑源CHAR(20)
。不是这种情况。