【发布时间】:2017-09-05 23:41:24
【问题描述】:
我的目标是转储数据库中所有表的表结构,没有任何内容。
我有一些包含保留关键字的 Redshift 表。如果我尝试转储它们,我会收到此错误:
pg_dump -sc --quote-all-identifiers -h example.com -p 5439 -d redacted -U redacted --table public.mytable > ./blah.txt
pg_dump: [archiver (db)] query failed: ERROR: syntax error at or near "stdout"
LINE 1: ... "status", "date") TO stdout;
^
pg_dump: [archiver (db)] query was: COPY "public"."mytable" ("status", "date") TO stdout;
如果我尝试使用pg_dump -sc --quote-all-identifiers -h example.com -p 5439 -d redacted -U redacted --table public.mytable > ./blah.txt 仅导出表结构,则命令成功,但生成的文件包含此创建表语句:
CREATE TABLE "mytable" (
);
除了换行之外,括号内没有任何内容。
Ubuntu 16.04 上的 pg_dump 版本是 pg_dump (PostgreSQL) 9.5.8。
该问题会影响几个不同的表,这些表的共同点之一是在 psql reserved words list 上使用单词命名的列。也许有另一种解释为什么会发生这种情况,所以我很想听听关于这个问题的替代理论。
虽然很好,但我无法更改表中列的名称。
【问题讨论】:
标签: amazon-redshift