Домены
Интересные статьи
Домены

Как сделать дамп только нужных записей из базы данных

Бывало такое, что из всей таблицы нужно сделать дамп только определенных строк? Например, результата какого-либо запроса? Штатными средствами того же pg_dump это не сделать (а я столкнулся с этой проблемой именно при работе с PostgreSQL), но тут нашлась хитрость.

Допустим у вас есть таблица table1, в которой 50 тысяч записей, а вас нужно выбрать только те, у которых ID в диапазоне между 30000 и 40000, а потом из этого получить дамп (copy или inserts).

Т.е. фактически результат псевдозапроса:

select * from table1 where id between 30000 and 40000

Вы можете сделать временную таблицу, куда загрузить результаты вашего запроса

create table export_table1 as select * from table1 where id between 30000 and 40000;

А потом уже сделать дамп этой таблицы через

pg_dump -d testdb -t 'export_table1' --data-only --inserts > table1_30000_40000_dump.sql

После этого не забудьте удалить временную таблицу

drop table export_table1;

И теперь единственное, что вам нужно сделать — изменить в полученном дампе имя таблицы с export_table1 на table1. Это можно сделать с помощью sed в linux:

sed -i 's/export_table1/table1/g' table1_30000_40000_dump.sql

Собственно всё, задача выполнена

Обо мне cyber01

Прочитайте также

Как установить Zend Framework на Ubuntu 18.04

Zend Framework 3 это последняя версия фреймворка. Новая версия отличается большей производительностью. Zend это фреймворк …

Как установить Python 3.8 в Ubuntu/Debian/Linux Mint

Команда разработки Python выпустила версию 3.8. Вы можете скачать последнюю стабильную версию ветки Python 3.8 …

Как установить и управлять NodeJS с помощью NVM

NVM, также известный как Node Version Manager, это аналог RVM (Ruby Version manager) для языка …

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *