以下语句中,有什么区别么?老大说有,不是特别的清楚
`record_name` varchar(50) DEFAULT '' COMMENT '记录名'
`record_name` varchar(50) NOT NULL DEFAULT '' COMMENT '记录名'
以下语句中,有什么区别么?老大说有,不是特别的清楚
`record_name` varchar(50) DEFAULT '' COMMENT '记录名'
`record_name` varchar(50) NOT NULL DEFAULT '' COMMENT '记录名'
一楼正解,之前有个同事搞测试环境上题主中的第一种方式,到了正式环境是第二种方式,测试时没有发现问题,到了正式环境就报错了,提示字段类型错误,就是因为正式环境里insert语句有null设置
1、可以从下图中看到,如果是null的话,每一条记录开始时都会在最前面有额外的字节标识,如第12列是null,就需要用额外的两字节 0800来标识
2、同时如果索引中有null会导致索引不生效
3、做比较是 可能会出现 null == 0的不正确结果
15 回答8.4k 阅读
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
除了一楼说的写入的区别之外,还有两点区别:
MySQL
中NULL
是需要占空间的;NULL
;因此,这也就是为什么我们经常看到
NOT NULL DEFAULT ''
的原因所在。