文章预览
mall学习教程官网: macrozheng.com 作者:假装懂编程 来源:juejin.cn/post/6992574502282477605 困惑 最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是我提mysql工单 alter table xxx ADD user_id int(1) 。领导看到我的sql工单,于是说:这 int(1) 怕是不够用吧,接下来是一通解释。其实这不是我第一次遇到这样的问题了,其中不乏有工作5年以上的老司机。包括我经常在也看到同事也一直使用int(10),感觉用了int(1),字段的上限就被限制,真实情况肯定不是这样。 数据说话 我们知道在mysql中 int占4个字节,那么对于无符号的int,最大值是2^32-1 = 4294967295,将近40亿,难道用了int(1),就不能达到这个最大值吗? CREATE TABLE `user` ( `id` int ( 1 ) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY ( `id` ) ) ENGINE = InnoDB AUTO_INCREMENT= 1 DEFAULT CHARSET =utf8m
………………………………