"Ошибка 42P01: связь не существует" (непубличная схема в PostgreSQL)
Я хочу создать внешний ключ, но я получил ошибку 42P01: отношение solicitantes не существует.
У меня есть схемы: общественные и лабораторные.
Моя таблица называется процедурой. Я хочу создать внешний ключ к таблице запросов. Оба принадлежат лабораторной схеме. Даже автозаполнение поля целевой таблицы работает и найти таблицу.
Я вижу это:
- Я могу создать приоритетный ключ для любых таблиц публичной схемы.
- Я не могу создать ключ поиска для любых таблиц схемы laboratorio. Ошибка при создании внешнего ключа.
Я использую программное обеспечение 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.
2 ответа
У меня была такая же проблема с добавлением внешних ключей к таблице в пользовательской схеме из окна изменения таблицы. Добавление схемы в поле "Таблица назначения" также не сработало. Вместо этого я выбрал "Открыть в редакторе", а не "Выполнить в базе данных" и добавил схему к имени таблицы в сгенерированном операторе, и она работала нормально.