2016-11-17 5 views
0

Если я создаю новую схему в текущей базе данных (management), почему она жалуется на ссылки между базами данных?Postgres foreign keys/schema issue

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); 

Второй формат необходим, если целевая таблица имеет несколько уникальных ограничений.