2016-11-17 55 views
0

如果我在当前数据库(management)上创建新模式,为什么它会抱怨跨数据库引用?Postgres外键/模式问题

management=# create schema mgschema; 
CREATE SCHEMA 

management=# alter table clients add column task_id int null references mgschema.tasks.id; 
ERROR: cross-database references are not implemented: "mgschema.tasks.id" 

回答

1
alter table clients add column task_id int null references mgschema.tasks.id; 

在不正确的语法REFERENCES,你应该使用:

REFERENCES reftable [ (refcolumn) ] 
+0

谢谢,这么琐碎。 :o现在起作用。 –

+0

不客气。 – McNets

1

简单references只需要一个表名。外键然后将自动指向该表的主键,例如,

alter table clients add column task_id int null references mgschema.tasks; 

另一种方法是指定表和列,但不与单个标识符:如果目标表具有多个独特的限制是需要

alter table clients add column task_id int null references mgschema.tasks (id); 

的第二格式。