Использование pg_dump для получения операторов вставки только из одной таблицы в базе данных - PullRequest
98 голосов
/ 18 мая 2010

Я ищу способ получить все строки в виде INSERT операторов из одной конкретной таблицы в базе данных, используя pg_dump в PostgreSQL.

Например, у меня есть таблица A и все строки в таблице A, которые мне нужны как INSERT операторы, они также должны выгружать эти операторы в файл.

Возможно ли это?

Ответы [ 4 ]

194 голосов
/ 18 мая 2010

, если версия <8.4.0 </p>

pg_dump -D -t <table> <database>

Добавьте -a перед -t, если вам нужны только ВСТАВКИ, без CREATE TABLE и т. Д., Чтобы настроить таблицу в первую очередь.

версия> = 8.4.0

pg_dump --column-inserts --data-only --table=<table> <database>
26 голосов
/ 20 января 2017

Если вы хотите DUMP свои вставки в файл .sql :

  1. cd в папку, в которой вы хотите .sql файл, который будет расположен
  2. pg_dump --column-inserts --data-only --table=<table> <database> > my_dump.sql

Обратите внимание на команду > my_dump.sql. Это поместит все в файл sql с именем my_dump

1 голос
/ 27 ноября 2018

Поместите в скрипт мне нравится что-то вроде этого:

#!/bin/bash
set -o xtrace # remove me after debug
TABLE=charge_unit
DB_NAME=prod_sit_entities_db

BASE_DIR=/var/backups/someDir
LOCATION="${BASE_DIR}/myApp_$(date +%Y%m%d_%H%M%S)"
FNAME="${LOCATION}_${DB_NAME}_${TABLE}.sql"

# Create backups directory if not exists
if [[ ! -e $BASE_DIR ]];then
|       mkdir $BASE_DIR
|       chown -R postgres:postgres $BASE_DIR
fi

sudo -H -u postgres pg_dump --column-inserts --data-only --table=$TABLE $DB_NAME > $FNAME
sudo gzip $FNAME
0 голосов
/ 26 марта 2019

на тот случай, если вы используете удаленный доступ и хотите сбросить все данные базы данных, вы можете использовать:

pg_dump -a -h your_host -U your_user -W -Fc your_database > DATA.dump

создаст дамп со всеми данными базы данных и будет использовать

pg_restore -a -h your_host -U your_user -W -Fc your_database < DATA.dump

для вставки тех же данных в вашу базу данных, учитывая, что у вас такая же структура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...