-1
是否有可能(在PostgreSQL中)作出一个约束,说列必须为空或包含来自另一列中另一个表的值?换句话说,要将CHECK约束与FOREIGN KEY约束结合起来?约束来检查列是否为空或引用其他列?
我想定义的是该列应该为空或包含来自另一列的值。这种情况下的目的是检查用户选择的语言是否在支持的语言列表中,或者未设置(保留为空)。
因此,一些在该行(不工作):
ALTER TABLE MyTable ADD CONSTRAINT my_constraint
CHECK (languageCode IS NULL) OR (languageCode) REFERENCES Languages (languageCode)
只需创建外键并让该字段可以为空。外键的目标不能为空,但是源代码肯定可以。 –
谢谢马克,它的工作原理也很简单:) –