因此,我试图使用pg\u dump从红移数据库中转储几个表。我对这里的数据本身不感兴趣,它将使用UNLOAD在单独的过程中提取。
然而,虽然pg\u 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\u dump完全知道表中至少有一列。
我的pg\U转储调用如下所示:
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
当我使用在pg\u dump调用中指定的同一个用户登录到DB时,我可以查询没有任何问题的表(即它们确实有列)。
我的用户既是表的所有者,也是架构的所有者。
我不知所措。任何帮助都将不胜感激。
编辑:
一些附加信息。
所讨论的表格是
CREATE TABLE <table> (LIKE <parentTable>);
对于订单,父级的ddl如下所示:
CREATE TABLE IF NOT EXISTS <parentTableName>(
orders_id int primary key,
cust_id int,
item varchar(50),
order_date date,
descr varchar(100)
);
正如人们可能从这些DDL中猜测的那样,这些只是一些虚拟测试表。