Postgres:外表的外键

sma*_*ang 5 foreign-data-wrapper postgresql-9.4

我有一个外国表,例如:

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;
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试添加外键约束时,出现错误:

ERROR:  referenced relation "film" is not a table
Run Code Online (Sandbox Code Playgroud)

是否可以向外表添加外键约束?

小智 0

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

创建索引 idx_film ON film (id);

这是错误:

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