Postgres外键/架构问题

时间:2016-11-17 15:51:37

标签: postgresql

如果我在当前数据库(management)上创建新架构,为什么它会抱怨跨数据库引用?

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"

2 个答案:

答案 0 :(得分:1)

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

REFERENCES语法不正确,您应该使用:

REFERENCES reftable [ ( refcolumn ) ]

答案 1 :(得分: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);

如果目标表具有多个唯一约束,则需要第二种格式。