Может ли внешняя таблица иметь то же имя, что и локальная таблица?

Моя проблема в том, что я использую базу данных 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;
Другие вопросы по тегам