在 MySQL 个数据库中,我是否应该始终将默认值设置为“NULL”?

Should I always set default value to `NULL` in MySQL databases?

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

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

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

我决定使用第一个选项,因为它更快且更简洁。

现在我必须进入数据库并将每个字段的默认值更改为 nullcurrent timestamp(如果使用 datetime)。

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

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

如果没有明显的默认值,那么正确的数据模型是具有 NULL 可用的列。这就是数据的含义及其表示方式。

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