J'ai utilisé pg_restore pour charger ma base de données postgres avec un fichier de vidage. Je me suis connecté à ma base de données avec mon utilisateur:
Sudo -u arajguru psql dump
select current_user;
current_user
--------------
arajguru
Maintenant, j'ai pu voir toutes les tables nouvellement créées:
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)
Mais lorsque j'essaie de lancer une requête select *, cela m'a donné cette erreur:
dump=> select * from Approvals;
ERROR: relation "approvals" does not exist
LINE 1: select * from Approvals;
Quelle peut être la raison de cette erreur? Veuillez aider.
Vous avez créé vos tableaux avec des guillemets doubles, et maintenant les noms sont sensibles à la casse.
Comme indiqué dans le manuel"Approvals"
et Approvals
sont deux noms différents.
Maintenant que vous avez créé les noms de table en respectant la casse, vous devez toujours utiliser ces guillemets redoutés.
select *
from "Approvals";
Comme conseil général: ne jamais utiliser de guillemets doubles en SQL.