Как скопировать данные из одной таблицы в другую в postgres с помощью команды копирования
Мы используем команду копирования для копирования данных одной таблицы в файл за пределами базы данных.
Возможно ли скопировать данные из одной таблицы в другую таблицу с помощью команды.
Если да, может кто-нибудь поделится запросом.
Или есть ли лучший подход, например, мы можем использовать pg_dump или что-то в этом роде.
Цените свою помощь.
С уважением,
Мохит
Ответы
Ответ 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";