Может ли внешняя таблица иметь то же имя, что и локальная таблица?
Моя проблема в том, что я использую базу данных PostgreSQL и хочу импортировать таблицу с именем vfm
скажем, из другой базы данных B
, Но в моей текущей базе данных есть таблица с таким же именем (A
). Я получаю сообщение об ошибке, в котором говорится, что связь уже существует.
Я хочу знать, есть ли способ импортировать сторонние схемы в таблицу с другим именем или (желательно), если мы можем запросить другую базу данных напрямую, без импорта сторонней схемы в PostgreSQL?
Я не смог найти идеальное решение для этого.
2 ответа
Я предполагаю, что вы используете postgres_fdw; для других сторонних упаковщиков данных все немного иначе.
Легко определять внешние таблицы без использования IMPORT FOREIGN SCHEMA
,
Если имя схемы myschema
, имя таблицы vfm
и внешний сервер serv
, вы могли бы
CREATE FOREIGN TABLE myschema.vfm_2(col1, type1, ...)
SERVER serv
OPTIONS (schema_name 'myschema', table_name 'vfm');
Другой вариант - просто загрузить таблицу в другую схему, например
CREATE SCHEMA foreign_data;
IMPORT FOREIGN SCHEMA public LIMIT TO (customers) FROM SERVER serv INTO foreign_data;