我使用 pg_restore 用转储文件加载我的 postgres 数据库。我与我的用户连接到我的数据库:
sudo -u arajguru psql dump
select current_user;
current_user
--------------
arajguru
现在我可以看到所有新创建的表:
dump=> \dt
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+----------
public | Approvals | table | arajguru
public | Approvers | table | arajguru
public | Conditions | table | arajguru
public | Entities | table | arajguru
public | EntityDefinitions | table | arajguru
public | Projects | table | arajguru
public | Rules | table | arajguru
public | run_history | table | arajguru
(8 rows)
但是当我尝试触发 select * 查询时,它给了我这个错误:
dump=> select * from Approvals;
ERROR: relation "approvals" does not exist
LINE 1: select * from Approvals;
这个错误的原因是什么?请帮忙。
您使用双引号创建了表,现在名称区分大小写。
如手册中所述
"Approvals"
,Approvals
是两个不同的名称。现在您以区分大小写的方式创建了表名,您必须始终使用那些可怕的双引号。
作为一般建议:切勿在 SQL 中使用双引号。