Как написать скрипт Postgresql для экспорта данных из таблицы в CSV-файл - PullRequest
0 голосов
/ 27 января 2011

Я просто хочу написать скрипт, который находит таблицы в определенных данных postgresql и преобразует / экспортирует целые данные в отдельные файлы csv

Помогите мне начать с примерами скриптов в postgresql

1 Ответ

2 голосов
/ 27 января 2011

Вы можете получить таблицы, запросив представление information_schema.tables:

dwh=> \d information_schema.tables 
                       View "information_schema.tables"
            Column            |               Type                | Modifiers 
------------------------------+-----------------------------------+-----------
 table_catalog                | information_schema.sql_identifier | 
 table_schema                 | information_schema.sql_identifier | 
 table_name                   | information_schema.sql_identifier | 
 table_type                   | information_schema.character_data | 
 self_referencing_column_name | information_schema.sql_identifier | 
 reference_generation         | information_schema.character_data | 
 user_defined_type_catalog    | information_schema.sql_identifier | 
 user_defined_type_schema     | information_schema.sql_identifier | 
 user_defined_type_name       | information_schema.sql_identifier | 
 is_insertable_into           | information_schema.character_data | 
 is_typed                     | information_schema.character_data | 
 commit_action                | information_schema.character_data | 

и аналогичное представление для столбцов: information_schema.columns. Более того, psql имеет опцию -E, которая показывает скрытые запросы, то есть запросы, выдаваемые такими командами psql, как '\ d', ...

Postgres имеет команду COPY (http://www.postgresql.org/docs/8.4/interactive/sql-copy.html), но вы должны быть суперпользователем базы данных (postgres), чтобы использовать ее с файлами (вы можете использовать COPY ... TO STOOUT HEADER CSV).

скрипт быстрой и грязной оболочки:

psql ... -A -t -U dwh -c "select '\\\copy ' || table_name || ' to ''' || table_name || '.csv'' csv header' from information_schema.tables" | psql ...

Вы должны заменить '...' параметрами подключения

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