我正在尝试使用-t执行特定表的postgres转储。但是,该表中有一个大写字母,我得到一个“找不到匹配的表格”。我尝试在表名周围使用引号和双引号,但它们不起作用。如何让pg识别大写字母?谢谢!
pg_dump -h hostname dbname -t tableName > pgdump.sql
答案 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