我尽了我的尽职调查资源并搜索解决此问题的方法,但找不到合适的答案具体的用例。将两列限制为两个字段必须有数据的位置,或者两个字段都必须为NULL
我在一张表中有两列:Packaged_By
和Packaged_Time
。两者都初始化为NULL
字段。
我想要什么:我希望两个领域:1)有一个值不是NULL
,或者2)请将这两个字段作为NULL
。
我不想要什么:我再也不想为了有其中一个列有一个值,但在其他列保持NULL
的情况下。这大大提高了我的数据库完整性。
不幸的是,我一直无法弄清楚如何用独特的约束来做到这一点。
我的问题:我可以使用约束来强制两个字段同时具有数据或NULL
值吗?是否有可能使用触发器来实现这一点?我错过了什么?
任何指导或方向将不胜感激。谢谢。
编辑:我正在使用MySQL。
为什么不为这两个设置一个默认值? – JordanBelf
我认为在MS SQL中你可能会设置约束条件(但我不太确定)。在MySQL中,我认为你可以完成这个任务的唯一方法是使用TRIGGERs强制将NULL都设为NULL。另外,关于UNIQUE约束,MySQL将每个NULL视为唯一;这可能是不相关的,因为两行在这些字段中具有相同的值可能合法(即使不太可能)。 – Uueerdo
检查这个问题和答案:http://stackoverflow.com/questions/2115497/check-constraint-in-mysql-is-not-working – Tim3880