Подтвердить что ты не робот

Как скопировать данные из одной таблицы в другую в postgres с помощью команды копирования

Мы используем команду копирования для копирования данных одной таблицы в файл за пределами базы данных.

Возможно ли скопировать данные из одной таблицы в другую таблицу с помощью команды.

Если да, может кто-нибудь поделится запросом.

Или есть ли лучший подход, например, мы можем использовать pg_dump или что-то в этом роде.

Цените свою помощь.

С уважением, Мохит

4b9b3361

Ответ 1

Вы не можете легко это сделать, но также нет необходимости делать это.

CREATE TABLE mycopy AS
SELECT * FROM mytable;

или

CREATE TABLE mycopy (LIKE mytable INCLUDING ALL);

INSERT INTO mycopy
SELECT * FROM mytable;

Если вам нужно выбрать только несколько столбцов или переупорядочить их, вы можете сделать это:

INSERT INTO mycopy(colA, colB)
SELECT col1, col2 FROM mytable;

Вы также можете выполнить выборочный pg_dump и восстановить только целевую таблицу.

Ответ 2

Предположим, что таблица уже существует, и вы хотите скопировать все записи из этой таблицы в другую таблицу, которой в данный момент нет в базе данных, тогда следующий запрос выполнит эту задачу для вас:

SELECT * into public."NewTable" FROM public."ExistingTable";