簡體   English   中英

為什么兩個表都在同一個數據庫中時,Postgres告訴我跨數據庫引用不可用?

[英]Why does Postgres tell me that cross database references are not available when both tables are on the same database?

這是SQL:

CREATE TABLESPACE fnord1 location '/tmp/fnord1';
CREATE TABLESPACE fnord2 location '/tmp/fnord2';

CREATE SCHEMA IF NOT EXISTS fnord;

DROP TABLE IF EXISTS fnord.shea;
DROP TABLE IF EXISTS fnord.wilson;

CREATE TABLE fnord.shea (
    id  text not null,

    CONSTRAINT fnord_shea_id PRIMARY KEY (id) USING INDEX TABLESPACE fnord2
) TABLESPACE fnord1;

CREATE TABLE fnord.wilson (
    thing       text not null,
    shea_id     bigserial not null,

    CONSTRAINT fnord_wilson_id PRIMARY KEY (thing, shea_id) USING INDEX TABLESPACE fnord2,
    CONSTRAINT fnord_wilson_shea_fkey FOREIGN KEY (shea_id) REFERENCES fnord.shea.id
) TABLESPACE fnord1;

由於外鍵聲明,此操作失敗,帶有

錯誤:跨數據庫引用未實現:“ fnord.shea.id”

但是...這些都在同一個數據庫中,不是嗎? 如果不是,將它們放入同一數據庫的正確方法是什么?

使用schema.table_name(column_name)

CONSTRAINT fnord_wilson_shea_fkey FOREIGN KEY (shea_id) REFERENCES fnord.shea.id

CONSTRAINT fnord_wilson_shea_fkey FOREIGN KEY (shea_id) REFERENCES fnord.shea(id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM