我正在尝试使用 -t 执行特定表的 postgres 转储。但是,该表中有一个大写字母,我得到“未找到匹配的表”。我尝试在表名周围使用引号和双引号,但它们不起作用。如何让 pg 识别大写字母?谢谢!
pg_dump -h hostname dbname -t tableName > pgdump.sql
我正在尝试使用 -t 执行特定表的 postgres 转储。但是,该表中有一个大写字母,我得到“未找到匹配的表”。我尝试在表名周围使用引号和双引号,但它们不起作用。如何让 pg 识别大写字母?谢谢!
pg_dump -h hostname dbname -t tableName > pgdump.sql
这是以普通模式转储表的完整命令:
pg_dump --host localhost --port 5432 --username "postgres" --role "postgres" --format plain --file "complete_path_file" --table "schema_name.\"table_name\"" "database_name"
或者你可以这样做:
pg_dump -t '"tablename"' database_name > data_base.sql
在此处查看最后一页:文档
以上解决方案在 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
在 cmd 窗口中,如果表名包含大写字母,我必须在表名周围加上三个(!)双引号。示例 pg_dump -t """Colors""" 数据库 > database.colors.psql
这对我有用:
pg_dump -f file.sql -U user -t 'schema.\"Table\"' database
作为节点脚本的一部分,我必须用单引号和双引号括起来,例如
` ... --table 'public."IndexedData"'`
公认的解决方案在 bash 控制台中工作,但不是作为节点脚本的一部分,仅作为单引号方法。