我有一个表名为file_upload它的列upload_id为BIGINT(11) AI PK NOT NULL当我将表的列大小更改为BIGINT(20) AI标志被删除时,我是否应该在每次更改列中的任何内容时为该列提供新的定义?
发布于 2017-06-04 02:54:21
只有一个小小的便条。BIGINT(10)和BIGINT(20)之间没有真正的区别。您可以始终存储相同的值。仅与ZEROFILL一起使用时的大小。
请参阅我的示例
mysql> CREATE TABLE `bigints` (
-> `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
-> `bigint1` BIGINT(1) UNSIGNED DEFAULT NULL,
-> `bigint10` BIGINT(10) UNSIGNED ZEROFILL DEFAULT NULL,
-> `bigint20` BIGINT(20) UNSIGNED ZEROFILL DEFAULT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=INNODB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0,04 sec)
mysql>
mysql> INSERT INTO `bigints` (`id`, `bigint1`, `bigint10`, `bigint20`)
-> VALUES
-> (1, 1, 1, 1),
-> (2, 100, 100, 100),
-> (3, 1000000000, 1000000000, 1000000000),
-> (4, 18446744073709551615, 18446744073709551615, 18446744073709551615);
Query OK, 4 rows affected (0,01 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT * from bigints;
+----+----------------------+----------------------+----------------------+
| id | bigint1 | bigint10 | bigint20 |
+----+----------------------+----------------------+----------------------+
| 1 | 1 | 0000000001 | 00000000000000000001 |
| 2 | 100 | 0000000100 | 00000000000000000100 |
| 3 | 1000000000 | 1000000000 | 00000000001000000000 |
| 4 | 18446744073709551615 | 18446744073709551615 | 18446744073709551615 |
+----+----------------------+----------------------+----------------------+
4 rows in set (0,01 sec)
mysql>https://stackoverflow.com/questions/44341939
复制相似问题