提问者:小点点

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


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

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

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

我决定采用第一种选择,因为它更快,更少混乱。

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

这真的是最好的方法吗? 难道就没有办法让这些字段空着吗?


共1个答案

匿名用户

如果插入的行设置了22个值中的9个值,那么其他13列可能是可为空的,或者应该具有default值。

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

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