带有"的外键约束,其中"

时间:2014-11-29 03:29:18

标签: 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 - 基本上是遗留行)没有父母。在下一个版本中,所有新行都将有一个父行

2 个答案:

答案 0 :(得分:1)

我表达这种方式的方法是允许child_id列为空,但使用references parent,并强制执行"正确性",添加额外的{{ 1}}

答案 1 :(得分:0)

表示数据的技术上正确的方法是为不同版本提供不同的表格。