Postgresql 带“的外键约束”;其中;
是否可以使用带有where的外键约束Postgresql 带“的外键约束”;其中;,postgresql,Postgresql,是否可以使用带有where的外键约束 CREATE TABLE child_version_2_parent_data ( child_id SERIAL PRIMARY KEY, ...some other meta data... ) CREATE TABLE child ( child_id SERIAL PRIMARY KEY REFERENCES parent WHERE version = 2, version int ) 我有一个表,其中大约有1亿行(版本1-基
CREATE TABLE child_version_2_parent_data (
child_id SERIAL PRIMARY KEY,
...some other meta data...
)
CREATE TABLE child (
child_id SERIAL PRIMARY KEY REFERENCES parent WHERE version = 2,
version int
)
我有一个表,其中大约有1亿行(版本1-基本上是遗留行)没有父行。在下一个版本中,所有新行都将有一个父行表示数据的技术正确方法是为不同的版本有不同的表。我要表达这一点的方式是允许
子id
列为空,但使用引用父行
,并强制执行“正确性”,添加一个额外的检查约束(版本<2或子id不为空)
如果您想确保版本=2
的所有行都具有不为空
子id
您可以使用检查约束。很抱歉澄清。子表上的child_id是主键。所有行在此表上都有子id我想对版本2的子行强制外键约束以引用另一个表