[英]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.