Создание команды INSERT в PostgreSQL для таблиц

Данный способ позволяет создать скрипт INSERT для наполнения таблицы PostgreSQL.

pg_dump -a -U postgres -t table_name -f output_name.sql --inserts --column-inserts --on-conflict-do-nothing database_name

Описание параметров:

  • a — Выгружаются только данные, а не схема (определения данных). Выгружаются табличные данные, большие объекты и значения последовательности. Этот параметр аналогичен, но по историческим причинам не идентичен параметру, определяющему --section=data.
  • U — Имя пользователя для подключения как.
  • t — Дамп только таблиц с совпадающими именами
  • f — Отправляйте выходные данные в указанный файл. Этот параметр можно опустить для файловых форматов вывода, в этом случае используется стандартный вывод. Однако он должен быть указан для формата вывода каталога, где указывается целевой каталог, а не файл. В этом случае каталог создан pg_dump и не должен существовать ранее.
  • inserts — Дамп данных в виде INSERT команд (а не COPY). Это сильно замедлит восстановление; в основном это полезно для создания дампов, которые можно загружать в базы данных, отличные от PostgreSQL. Любая ошибка во время восстановления приведет к потере только строк, которые являются частью проблемной таблицы, INSERT а не всего содержимого таблицы. Обратите внимание, что восстановление может завершиться полным сбоем, если вы изменили порядок столбцов. Опция --column-inserts защищает от изменений порядка столбцов, хотя и работает еще медленнее.
  • column-inserts — Дамп данных в виде INSERT команд с явными именами столбцов (INSERT INTO table (column, ...) VALUES ...). Это сильно замедлит восстановление; в основном это полезно для создания дампов, которые можно загружать в базы данных, отличные от PostgreSQL. Любая ошибка во время восстановления приведет к потере только строк, которые являются частью проблемной таблицы INSERT, а не всего содержимого таблицы.
  • on-conflict-do-nothing — Добавить команды ON CONFLICT DO NOTHING в INSERT. Этот параметр недопустим, если также не указано --inserts--column-inserts или --rows-per-insert.

Пример:

pg_dump -a -U postgres -t dbo.cs_point_types -f cs_point_types.sql --inserts --column-inserts --on-conflict-do-nothing skr-dev-db

https://www.postgresql.org/docs/current/app-pgdump.html

Print Friendly, PDF & Email

Добавить комментарий