Amazon redshift pg_dump输出空的create语句

Amazon redshift pg_dump输出空的create语句,amazon-redshift,plpgsql,pg-dump,Amazon Redshift,Plpgsql,Pg Dump,因此,我尝试使用pg_dump从红移数据库中转储几个表。我对这里的数据本身不感兴趣,它将使用UNLOAD在单独的过程中提取 然而,尽管pg_dump执行时没有任何错误,但输出sql脚本中的CREATE TABLE语句是空的,例如 CREATE TABLE test_data_sampling.orders(); 有趣的是,接下来是 ALTER TABLE ONLY test_data_sampling.orders ALTER COLUMN orders_id SET NOT NULL; 这

因此,我尝试使用pg_dump从红移数据库中转储几个表。我对这里的数据本身不感兴趣,它将使用UNLOAD在单独的过程中提取

然而,尽管pg_dump执行时没有任何错误,但输出sql脚本中的CREATE TABLE语句是空的,例如

CREATE TABLE test_data_sampling.orders();
有趣的是,接下来是

ALTER TABLE ONLY test_data_sampling.orders ALTER COLUMN orders_id SET NOT NULL;
这似乎表明pg_dump完全知道表中至少有一列

我的pg_转储呼叫如下所示:

pg_dump -s -t test_data_sampling.customer -t test_data_sampling.orders -t test_data_sampling.addr --dbname=postgresql://<user>:<password>@<host>:<port>/dbName?ssl=true --file=backup_dbName.sql
CREATE TABLE IF NOT EXISTS <parentTableName>(
    orders_id int primary key, 
    cust_id int, 
    item varchar(50), 
    order_date date, 
    descr varchar(100)
);
pg\u dump-s-t test\u data\u sampling.customer-t test\u data\u sampling.orders-t test\u data\u sampling.addr--dbname=postgresql://:@:/dbname?ssl=true--file=backup\u dbname.sql
当我使用在pg_dump调用中指定的同一用户登录数据库时,我可以查询表而不出现任何问题(即它们确实有列)。 我的用户既是表的所有者,也是模式的所有者

我不知所措。任何帮助都将不胜感激

编辑: 一些补充资料

所讨论的表格是

CREATE TABLE <table> (LIKE <parentTable>);
创建表(LIKE);
对于订单,父级的ddl如下所示:

pg_dump -s -t test_data_sampling.customer -t test_data_sampling.orders -t test_data_sampling.addr --dbname=postgresql://<user>:<password>@<host>:<port>/dbName?ssl=true --file=backup_dbName.sql
CREATE TABLE IF NOT EXISTS <parentTableName>(
    orders_id int primary key, 
    cust_id int, 
    item varchar(50), 
    order_date date, 
    descr varchar(100)
);
创建表(如果不存在)(
orders_id int主键,
客户id int,
项目varchar(50),
订单日期,
描述varchar(100)
);
正如人们可能从这些DDL中猜测的那样,这些只是一些虚拟测试表。

有一个


库中的其他项对于提取现有项也很有用。

可能某些特定于红移的ddl混淆了它-您可以发布顺序中的红移ddl吗?使用aginity workbench获得最佳质量的输出?我更新了问题以包含更多信息