mysql - 将两列限制为两个字段都必须有数据或两个字段都必须为 NULL

标签 mysql sql

我已尽力尽职调查并寻找解决此问题的方法,但我找不到适合此特定用例的答案。

我在一个订单表中有两列:Packaged_ByPackaged_Time。两者都被初始化为 NULL 字段。

我想要的:我希望两个字段 1) 的值不是 NULL,或者 2) 将两个字段都保留为 NULL.

我不想要的:我永远不希望出现一列有值但另一列保持为 NULL 的情况。这严重破坏了我的数据库完整性。

不幸的是,我一直无法弄清楚如何在唯一约束下做到这一点。

我的问题:我能否使用约束强制两个字段同时具有数据或NULL 值?是否可以使用触发器来完成此操作?我错过了什么?

如有任何指导或指示,我们将不胜感激。谢谢。

编辑:我正在使用 MySQL。

最佳答案

该设计违反了Second Normal Form .你应该处理它的方式是创建第二个表,包括你的两个不可为空的数据字段和一个外键到你的原始表。

关于mysql - 将两列限制为两个字段都必须有数据或两个字段都必须为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200434/

相关文章:

mysql - 如何将递归自连接列表连接到 MySQL 中的字符串中?

SQL函数问题

sql - 将 sql 整数舍入到最接近的小时

sql - 难以定义分区的平均值

sql - 在 SQL Server 中从 XML 中提取值

python - 当任何表或行已更新时,mssql 是否可以通过任何方式通知我的 python 应用程序?

java - 安卓/PHP : Login successful but Failed redirect to the next activity

PHP News Feed 数据库和设计

mysql - 我需要将多个查询结果合并到一个结果中

php - 有没有办法在 CodeIgniter 中指定 "USE INDEX"或 "FORCE INDEX"