mysql - 我应该在 MySQL 数据库中始终将默认值设置为“NULL”吗?
问题描述
我正在处理一个特别大的表(22 个字段),而这些字段并不总是在创建时填写。实际上在第一次创建时,只设置了 9 个字段。
对于我试图创建一个包含未定义字段且没有默认值的行的错误,我并不感到惊讶。我看到了两种解决方法:
- 进入数据库并将每个字段设置为默认值设置为
null
- 调用时
create
,插入""
字符串值、0
整数值等。
我决定使用第一个选项,因为它更快且不那么混乱。
现在我必须进入数据库并将每个字段更改为默认值null
orcurrent timestamp
如果使用date
or time
。
这真的是最好的方法吗?有没有办法让这些字段为空?
解决方案
如果您要插入具有 22 个值集合中的 9 个值的行,那么其他 13 列可能可以为空或应该有一个default
值。
如果没有明显的默认值,那么正确的数据模型是拥有可用的NULL
列。这就是数据是什么以及它应该如何表示。
虽然我不提倡使用它,但我会注意到它''
适用于几乎所有数据类型。0
对于数字,它被转换为 a ,0
对于日期/时间值,它被转换为 date。在某些情况下,这可能是一种方便的赋值方式。
推荐阅读
- laravel - laravel 队列:worker 什么都不做
- date - AEM HTL / Sightly 日期格式化程序所需的日期类型
- python - 隔离森林算法源码讲解
- mysql - 如何在唯一列的 2 条记录之间交换值
- embedded-linux - 如何使用 DMtimer 在 beaglebone 中设置 1 分钟计时器?
- c - 如何使用递归函数找到最大数
- android - react-native run-android build error 找不到 com.google.android.gms:play-services-base:xyz
- .net - 通过 TeamCity 构建时的文件名编码问题,但如果登录到机器并手动构建则不会
- c# - 为什么我应该在字符串上使用 SecureString?
- php - fputcsv():提供的资源不是有效的流资源