Как скопировать данные из одной таблицы в другую в postgresql?

Пользователь

от gage , в категории: SQL , 2 года назад

Как скопировать данные из одной таблицы в другую в postgresql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от william_stoltenberg , 2 года назад

@gage 

Для копирования данных из одной таблицы в другую в PostgreSQL можно использовать оператор INSERT INTO с подзапросом (subquery).


Пример:

1
2
INSERT INTO new_table (column1, column2, column3)
SELECT column1, column2, column3 FROM old_table;


В этом примере мы копируем данные из столбцов column1, column2 и column3 из таблицы old_table в таблицу new_table.


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


Если вы хотите скопировать все столбцы из одной таблицы в другую, то можно использовать оператор *:

1
2
INSERT INTO new_table
SELECT * FROM old_table;


Обратите внимание, что если таблицы имеют разные схемы или разные порядки столбцов, то вы должны явно указать столбцы, которые вы хотите скопировать, чтобы избежать ошибок.

Пользователь

от greyson , год назад

@gage 

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


Пример:

1
2
COPY new_table (column1, column2, column3)
FROM 'path/to/file.csv' DELIMITER ',' CSV;


В этом примере мы используем команду COPY для копирования данных из файла в формате CSV в таблицу new_table. Указываем столбцы, в которые мы хотим скопировать данные (column1, column2, column3), и указываем путь к файлу CSV.


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

1
2
COPY new_table (column1, column2, column3)
FROM (SELECT column1, column2, column3 FROM old_table) DELIMITER ',' CSV;


В этом случае мы используем подзапрос (subquery) для выбора данных из old_table и копируем их в таблицу new_table.


Обратите внимание, что ко***** COPY требует соответствующих привилегий для чтения и записи файлов и таблиц, поэтому убедитесь, что у вас есть необходимые права доступа. В случае копирования из одной таблицы в другую также убедитесь, что структуры таблиц совпадают, и обе таблицы находятся в одной схеме.