在 MySQL 个数据库中,我是否应该始终将默认值设置为“NULL”?
Should I always set default value to `NULL` in MySQL databases?
我正在处理一个特别大的 table(22 个字段),这些字段并不总是在创建时填写。事实上,在第一次创建时,只设置了 9 个字段。
当我试图创建一个包含没有默认值的未定义字段的行时,我并不感到惊讶。我看到了两种解决方法:
- 进入数据库并将每个字段的默认值设置为
null
- 当调用
create
时,为字符串值插入 ""
,为整数值插入 0
,等等
我决定使用第一个选项,因为它更快且更简洁。
现在我必须进入数据库并将每个字段的默认值更改为 null
或 current timestamp
(如果使用 date
或 time
)。
这真的是最好的方法吗?没有办法让这些字段留空吗?
如果您要插入包含 22 个值集中的 9 个值的行,那么大概其他 13 列可以为空或应该具有 default
值。
如果没有明显的默认值,那么正确的数据模型是具有 NULL
可用的列。这就是数据的含义及其表示方式。
虽然我不提倡使用它,但我会注意到 ''
几乎适用于所有数据类型。它被转换为数字的 0
和 date/time 值的 0
日期。在某些情况下,这可能是一种方便的赋值方式。
我正在处理一个特别大的 table(22 个字段),这些字段并不总是在创建时填写。事实上,在第一次创建时,只设置了 9 个字段。
当我试图创建一个包含没有默认值的未定义字段的行时,我并不感到惊讶。我看到了两种解决方法:
- 进入数据库并将每个字段的默认值设置为
null
- 当调用
create
时,为字符串值插入""
,为整数值插入0
,等等
我决定使用第一个选项,因为它更快且更简洁。
现在我必须进入数据库并将每个字段的默认值更改为 null
或 current timestamp
(如果使用 date
或 time
)。
这真的是最好的方法吗?没有办法让这些字段留空吗?
如果您要插入包含 22 个值集中的 9 个值的行,那么大概其他 13 列可以为空或应该具有 default
值。
如果没有明显的默认值,那么正确的数据模型是具有 NULL
可用的列。这就是数据的含义及其表示方式。
虽然我不提倡使用它,但我会注意到 ''
几乎适用于所有数据类型。它被转换为数字的 0
和 date/time 值的 0
日期。在某些情况下,这可能是一种方便的赋值方式。