debugsqlMajor
Postgres : Relation does not exist error
Viewed 0 times
errorpostgresexistdoesrelationnot
Problem
I used pg_restore to load my postgres db with a dump file.
I connected to my db with my user :
Now I was able to see all the newly created tables:
But when I try to fire a select * query, it gave me this error:
What can be the reason for this error? Please help.
I connected to my db with my user :
sudo -u arajguru psql dump
select current_user;
current_user
--------------
arajguruNow 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? Please help.
Solution
You created your tables with double quotes, and now the names are case sensitive.
As documented in the manual
Now that you created the table names in a case sensitive manner, you have to use those dreaded double quotes always.
As a general advice: never use double quotes in SQL.
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.
Code Snippets
select *
from "Approvals";Context
StackExchange Database Administrators Q#192897, answer score: 40
Revisions (0)
No revisions yet.