«Ошибка 42P01: связь не существует» (не общедоступная схема в PostgreSQL)

Я хочу создать внешний ключ, но у меня возникла ошибка 42P01: solicitantes отношения не существует.

У меня есть схемы: паблик и лаборатория.

Моя таблица называется процедурой. Я хочу создать внешний ключ для таблицы solicitantes. Оба принадлежат схеме лаборатории. Даже автозаполнение поля целевой таблицы работает и находит таблицу.

Я вижу это:

  • Я могу создать внешний ключ к любым таблицам публичной схемы.
  • Я не могу создать внешний ключ ни к каким таблицам схемы лаборатории. Ошибка при создании внешнего ключа.

введите описание изображения здесь

Я использую программу Jetbrains DataGrip.

Это DDL таблицы с названием "solicitantes":

CREATE TABLE laboratorio.solicitantes
(
  id_solicitante serial NOT NULL,
  nombre_solicitante character varying(100) NOT NULL,
  CONSTRAINT solicitantes_pkey PRIMARY KEY (id_solicitante)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE laboratorio.solicitantes
  OWNER TO roby;

CREATE UNIQUE INDEX solicitantes_id_solicitante_uindex
  ON laboratorio.solicitantes
  USING btree
  (id_solicitante);

CREATE UNIQUE INDEX solicitantes_nombre_solicitante_uindex
  ON laboratorio.solicitantes
  USING btree
  (nombre_solicitante COLLATE pg_catalog."default");

Я думаю, мне нужно указать имя схемы, но я не знаю, где это сделать в DataGrip.


person Roby Sottini    schedule 13.11.2017    source источник


Ответы (2)


У меня была такая же проблема с добавлением внешних ключей в таблицу в настраиваемой схеме из окна изменения таблицы. Добавление схемы в поле «Целевая таблица» тоже не помогло. Вместо этого я выбрал «Открыть в редакторе», а не «Выполнить в базе данных», и добавил схему к имени таблицы в сгенерированном операторе, и все прошло нормально.

person v1r7u3    schedule 27.03.2018

вы пробовали добавить явную схему в таблицу solicitantes?

person Deiwys    schedule 13.11.2017
comment
Я пробовал это и не получилось. Целевая таблица: labratorio.solitantes - person Roby Sottini; 13.11.2017
comment
Эта ошибка на испанском языке, это означает, что эту ошибку выдает база данных, а не инструмент. Пожалуйста, предоставьте DDL таблицы солиситантов. - person moscas; 14.11.2017