Postgres转储具有大写字母的特定表

时间:2012-12-16 20:23:30

标签: postgresql shell

我正在尝试使用-t执行特定表的postgres转储。但是,该表中有一个大写字母,我得到一个“找不到匹配的表格”。我尝试在表名周围使用引号和双引号,但它们不起作用。如何让pg识别大写字母?谢谢!

pg_dump -h hostname dbname -t tableName > pgdump.sql 

4 个答案:

答案 0 :(得分:31)

以下是以纯模式转储表的完整命令:

pg_dump --host localhost --port 5432 --username "postgres" --role "postgres"  --format plain  --file "complete_path_file" --table "schma_name.\"table_name\"" "database_name"

或者你可以这样做:

pg_dump -t '"tablename"' database_name > data_base.sql

请查看最后一页:Documentation

答案 1 :(得分:4)

在Windows 7 x64下,上述解决方案对我不起作用。 PostgreSQL 9.4.5。但这最终(叹气):

-t "cms.\"FooContents\""

要么...

pg_dump.exe -p 8888 --username=user -t "cms.\"FooContents\"" basdb

...或...

pg_dump.exe -p 8888 --username=user -table="cms.\"FooContents\"" basdb

答案 2 :(得分:2)

在cmd窗口中,如果它计算大写字母,我必须在表名周围加上三个(!)双引号。 例 pg_dump -t“”“颜色”“”数据库> database.colors.psql

答案 3 :(得分:0)

这对我有用:

pg_dump -f file.sql -U user -t 'schema.\"Table\"' database