Postgres: Beziehung existiert nicht Fehler

14

Ich habe pg_restore verwendet, um meine Postgres-Datenbank mit einer Dump-Datei zu laden. Ich habe mit meinem Benutzer eine Verbindung zu meiner Datenbank hergestellt:

sudo -u arajguru psql dump

select current_user;
 current_user 
--------------
 arajguru

Jetzt konnte ich alle neu erstellten Tabellen sehen:

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)

Aber wenn ich versuche, eine select * -Abfrage auszulösen, gab es diesen Fehler:

dump=> select * from Approvals;
ERROR:  relation "approvals" does not exist
LINE 1: select * from Approvals;

Was kann der Grund für diesen Fehler sein? Bitte helfen Sie.

Ayushi Rajguru
quelle

Antworten:

23

Sie haben Ihre Tabellen mit doppelten Anführungszeichen erstellt, und jetzt wird bei den Namen zwischen Groß- und Kleinschreibung unterschieden.

Wie im Handbuch dokumentiert "Approvals" und Approvalssind zwei verschiedene Namen.

Nachdem Sie die Tabellennamen in Groß- und Kleinschreibung erstellt haben, müssen Sie diese gefürchteten doppelten Anführungszeichen immer verwenden.

select * 
from "Approvals";

Als allgemeiner Rat: Verwenden Sie in SQL niemals doppelte Anführungszeichen .

ein Pferd ohne Name
quelle
1
Vielen Dank! Arbeite jetzt. Woher wussten Sie, dass die Tabellen in doppelten Anführungszeichen erstellt wurden?
Ayushi Rajguru
1
@ AyushiRajguru: weil die "Liste der Tabellen" sie mit Groß- / Kleinbuchstaben anzeigt. Der einzige Weg, dies zu erreichen, ist die Verwendung von doppelten Anführungszeichen (wie im Handbuch dokumentiert )
a_horse_with_no_name
ahh, ich hatte das gleiche mit logs vs "logs" danke youuuuu <3
csomakk