int(1) 和 int(10) 有什么区别?资深开发竟然都理解错了!
阅读本文大概需要 2.8 分钟。
来自:juejin.cn/post/6992574502282477605
困惑
alter table xxx ADD user_id int(1)
。领导看到我的sql工单,于是说:这int(1)
怕是不够用吧,接下来是一通解释。数据说话
CREATE TABLE `user` (
`id` int(1) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
mysql> INSERT INTO `user` (`id`) VALUES (4294967295);
Query OK, 1 row affected (0.00 sec)
零填充
CREATE TABLE `user` (
`id` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
mysql> INSERT INTO `user` (`id`) VALUES (1),(10),(100),(1000);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from user;
+------+
| id |
+------+
| 0001 |
| 0010 |
| 0100 |
| 1000 |
+------+
4 rows in set (0.00 sec)
总结
推荐阅读:
被骂惨的 Windows 11 还是“真香”了:下月将支持 Android 应用,产品满意度历代最高!
扎克伯格“气哭”了:Meta搞元宇宙巨亏,股价暴跌市值蒸发2000多亿美元
内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级......等技术栈!
⬇戳阅读原文领取! 朕已阅