【问题标题】:Postgres: foreign key to foreign tablePostgres:外部表的外键
【发布时间】:2016-05-22 23:37:56
【问题描述】:

我有一张外表,例如:

CREATE FOREIGN TABLE film (
    id          varchar(40) NOT NULL,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
)
SERVER film_server;

以 id 作为该表的主键(在远程数据库中设置)。我想让一个本地表引用外部表,并在本地表上设置一个外键约束——例如:

CREATE TABLE actor (
    id          varchar(40) NOT NULL,
    name       varchar(40) NOT NULL,
    film_id       varchar(40) NOT NULL,
)

ALTER TABLE actor ADD CONSTRAINT actor_film_fkey FOREIGN KEY (film_id) 
    REFERENCES film(id);

但是,当我尝试添加外键约束时,我得到了错误:

ERROR:  referenced relation "film" is not a table

是否可以在外部表中添加外键约束?

【问题讨论】:

  • 如果我理解正确,表actor和表文件在不同的数据库上?
  • 是的,表actor和表文件在不同的数据库中
  • 你需要先链接两个数据库。在您可以设置表关系之前。
  • 我看到我们缺乏明确定义的证据,即使在 9.6 中也不支持外部表上的外键。但在实践中这是不可能的。如果您对此问题有任何新的更新,请分享。我和你有同样的问题。谢谢。

标签: postgresql-9.4 foreign-data-wrapper


【解决方案1】:

不可能在外部表上创建索引。

在电影 (id) 上创建索引 idx_film;

这是错误:

错误:无法在外部表上创建索引

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 2017-12-30
    相关资源
    最近更新 更多