为什么不建议给MySQL设置Null值?《死磕MySQL系列 十八》

大家好,我是咔咔 不期速成,日拱一卒

之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时、空数组、null值数组时,会将其视为该字段没有值,最终还是需要使用exists或者null_value来处理空值

大多数ElasticSearch的数据都来自于各类数据库,这里暂且只针对于MySQL,各个开源软件中都默认兼容各种Null值,空数组等等

若从根源上截断就可以省很多事,直到现在很多开发小伙伴还是坚韧不拔的给字段的默认值还是Null

本期就来聊一聊为什么不建议给字段的默认值设置为Null

本期环境为:MySQL8.0.26

null

一、案例数据

创建表user

  1. CREATE TABLE `user` (
  2. `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  3. `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  4. `age` tinyint(4) unsigned NOT NULL,
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

添加数据,共计10条数据,有两条数据的name值为Null

  1. INSERT INTO `user` (`name`, `age`) VALUES ('kaka', 26);
  2. INSERT INTO `user` (`name`, `age`) VALUES ('niuniu', 26);
  3. INSERT INTO `user` (`name`, `age`) VALUES ('yangyang', 26);
  4. INSERT INTO `user` (`name`, `age`) VALUES ('dandan', 26);
  5. INSERT INTO `user` (`name`, `age`) VALUES ('liuliu', 26);
  6. INSERT INTO `user` (`name`, `age`) VALUES ('yanyan', 26);
  7. INSERT INTO &

发表评论

表情:
评论列表 (有 0 条评论,56人围观)

还没有评论,来说两句吧...

相关阅读