首页 > 解决方案 > 我应该在 MySQL 数据库中始终将默认值设置为“NULL”吗?

问题描述

我正在处理一个特别大的表(22 个字段),而这些字段并不总是在创建时填写。实际上在第一次创建时,只设置了 9 个字段。

对于我试图创建一个包含未定义字段且没有默认值的行的错误,我并不感到惊讶。我看到了两种解决方法:

  1. 进入数据库并将每个字段设置为默认值设置为null
  2. 调用时create,插入""字符串值、0整数值等。

我决定使用第一个选项,因为它更快且不那么混乱。

现在我必须进入数据库并将每个字段更改为默认值nullorcurrent timestamp如果使用dateor time

这真的是最好的方法吗?有没有办法让这些字段为空?

标签: mysqldatabase-design

解决方案


如果您要插入具有 22 个值集合中的 9 个值的行,那么其他 13 列可能可以为空或应该有一个default值。

如果没有明显的默认值,那么正确的数据模型是拥有可用的NULL列。这就是数据是什么以及它应该如何表示。

虽然我不提倡使用它,但我会注意到它''适用于几乎所有数据类型。0对于数字,它被转换为 a ,0对于日期/时间值,它被转换为 date。在某些情况下,这可能是一种方便的赋值方式。


推荐阅读