我知道有符号数据类型包含负数,而正数没有,而无符号仅包含正整数。
但两者之间的区别是什么。
bigint unsigned
和bigint(20) unsigned
答案 0 :(得分:5)
BIGINT UNSIGNED
是一个8字节的无符号整数。
BIGINT中的20(20)几乎没有任何意义。这是显示宽度的提示,它与存储无关。实际上,它只影响ZEROFILL选项:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
这是MySQL用户看到BIGINT(20)的混淆的常见原因,并假设它是一个大小限制,类似于CHAR(20)。