mysql字段defalut ''的区别

以下语句中,有什么区别么?老大说有,不是特别的清楚

`record_name` varchar(50) DEFAULT '' COMMENT '记录名'
`record_name` varchar(50) NOT NULL DEFAULT '' COMMENT '记录名'
阅读 4.2k
5 个回答

除了一楼说的写入的区别之外,还有两点区别:

  1. MySQLNULL是需要占空间的;
  2. 在索引中没有办法存储NULL;

因此,这也就是为什么我们经常看到NOT NULL DEFAULT ''的原因所在。

第一个可以置为null,第二个不可以。。。

新手上路,请多包涵

设置了default关键字过后,not null感觉有没有都没太大的区别

一楼正解,之前有个同事搞测试环境上题主中的第一种方式,到了正式环境是第二种方式,测试时没有发现问题,到了正式环境就报错了,提示字段类型错误,就是因为正式环境里insert语句有null设置

1、可以从下图中看到,如果是null的话,每一条记录开始时都会在最前面有额外的字节标识,如第12列是null,就需要用额外的两字节 0800来标识

图片描述

图片描述

图片描述

2、同时如果索引中有null会导致索引不生效
3、做比较是 可能会出现 null == 0的不正确结果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题