我只想编写一个脚本,查找特定postgresql数据中的表,并将整个数据转换/导出到单个csv文件
帮助我开始使用postgresql中的示例脚本
答案 0 :(得分:2)
您可以通过查询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) ... STDOUT HEADER CSV)。
快速&脏shell脚本:
psql ... -A -t -U dwh -c "select '\\\copy ' || table_name || ' to ''' || table_name || '.csv'' csv header' from information_schema.tables" | psql ...
您必须使用连接参数替换“...”