PostgreSQL Copy - быстрая и эффективная передача данных
Команда COPY в PostgreSQL используется для копирования данных из файла в таблицу или из таблицы в файл. Она позволяет эффективно импортировать или экспортировать большие объемы данных. COPY работает намного быстрее, чем выполнение инструкций INSERT одной за другой, особенно при добавлении или обновлении большого количества строк данных.
Примеры использования команды COPY:
1. Копирование данных из файла в таблицу:
COPY employees (id, name, salary) FROM '/path/to/file.csv' DELIMITER ',' CSV;
В этом примере мы копируем данные из файла с разделителем запятая (CSV формат) в таблицу "employees". Поле "id", "name" и "salary" соответствуют столбцам таблицы.
2. Копирование данных из таблицы в файл:
COPY employees TO '/path/to/file.csv' DELIMITER ',' CSV;
В данном случае мы копируем данные из таблицы "employees" в файл с разделителем запятая (CSV формат).
3. Копирование данных с применением условия:
COPY employees (id, name, salary) FROM '/path/to/file.csv' DELIMITER ',' CSV WHERE salary > 50000;
В этом примере мы копируем только те строки из файла, где значение столбца "salary" больше 50000.
4. Копирование данных с использованием форматов с разделителем табуляции или фиксированной ширины:
COPY employees (id, name, salary) FROM '/path/to/file.csv' DELIMITER E'\t' CSV;
Здесь мы указываем разделитель табуляции (E'\t') вместо запятой. Вы также можете использовать формат с фиксированной шириной столбцов, установив определенные позиции для каждого столбца.
5. Копирование только выбранных столбцов:
COPY employees (name, salary) FROM '/path/to/file.csv' DELIMITER ',' CSV;
В этом случае мы копируем только столбцы "name" и "salary" из файла в таблицу.
Обратите внимание, что команда COPY требует разрешений на чтение файла и запись в таблицу, поэтому убедитесь, что у пользователя есть соответствующие права доступа.