How to resolve the error - postgresql relation does not exist?
I used pg_restore to load my postgres db with a dump file. I connected to my db with my user :
sudo -u arajguru psql dump
select current_user;
current_user
--------------
arajguru
Now I was able to see all the newly created tables:
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)
But when I try to fire a select * query, it gave me this error:
dump=> select * from Approvals;
ERROR: relation "approvals" does not exist
LINE 1: select * from Approvals;
What can be the reason for this error?
To resolve the error - postgresql relation does not exist - You created your tables with double quotes, and now the names are case sensitive. As documented in the manual "Approvals" and Approvals are two different names. Now that you created the table names in a case sensitive manner, you have to use those dreaded double quotes always.
select *
from "Approvals";
As a general advice: never use double quotes in SQL.