没有来自列的外键约束

时间:2016-07-29 07:51:15

标签: postgresql

在我们的数据库中,我们碰巧有一个外键约束,其列为空

它看起来像这样

fk_1049376c154c25f8 FOREIGN KEY () REFERENCES table2 (id)

这表示什么,以及Postgres文档中的文档在哪里

我看到三种可能的含义

  • 使用第二个表中引用的相同列名,这意味着(id) references table2 (id)隐式
  • 使用此表中为id的主键,因此它也可能是(id) references table (id)
  • 或监控所有列(*) references table2 (id),这些列实际上似乎是这种行为,但对我来说没有任何意义

有人能指出我正确的解释或一些确认我的理论或给我真实真相的读物吗?

1 个答案:

答案 0 :(得分:0)

尝试使用它至少会在PostgreSQL 9.3中引发语法错误。

postgres=# alter table test add foreign key () references test(id);
ERROR:  syntax error at or near ")"
LINE 1: alter table test add foreign key() references test(id);

我猜这是来自psql \ d或其他什么东西所以它听起来像是你的数据库中的错误,也许是某种目录损坏。

无论如何,它不是一个有效的语法,您应该查看它的来源并修复它。