PostgreSQL-Abfragefehler: „Beziehung existiert nicht“
Beim Versuch, eine SQL-Abfrage auszuführen, kann der Fehler „Beziehung“ auftreten. relation_name‘ existiert nicht.“ Dieser Fehler weist darauf hin, dass PostgreSQL die angegebene Beziehung, normalerweise eine Tabelle oder Ansicht, in der aktuellen Datenbank nicht finden kann.
Problemursache
Einer der häufigsten Gründe für Dieser Fehler bezieht sich auf den Beziehungsnamen mit einer falschen Schreibweise. Wenn der Beziehungsname gemischte Groß- und Kleinschreibung enthält, beispielsweise „SF_Bands“, während die Abfrage die Kleinschreibung „sf_bands“ verwendet, schlägt die Abfrage fehl. PostgreSQL unterscheidet bei der Verarbeitung von Bezeichnern zwischen Groß- und Kleinschreibung, daher muss die gemischte Schreibweise beibehalten werden.
Lösung 1: Verwenden Sie doppelte Anführungszeichen in Bezeichnern
Um eine Beziehung korrekt mit zu referenzieren Bei gemischter Schreibweise verwenden Sie doppelte Anführungszeichen ("), um den Bezeichner abzugrenzen. Beispiel:
SELECT * FROM "SF_Bands" LIMIT 10;
Lösung 2: Schema-Suchpfad festlegen
Wenn die Beziehung zu einem nicht standardmäßigen Schema gehört, können Sie den Schema-Suchpfad so anpassen, dass er das relevante Schema einschließt. Der Suchpfad definiert die Reihenfolge, in der PostgreSQL nach Schemas sucht Beziehungsnamen auflösen.
Um ein Schema zum Suchpfad hinzuzufügen, führen Sie den folgenden Befehl aus:
SET search_path TO <schema_name>,public;
In diesem In diesem Fall ersetzen Sie
Beispiel
Für eine Beziehung namens „sf_bands“ in einem Schema namens „showfinder, " Sie können den Suchpfad anpassen und die Abfrage wie folgt ändern:
SET search_path TO showfinder,public; SELECT * FROM sf_bands LIMIT 10;
Das obige ist der detaillierte Inhalt vonPostgreSQL „Beziehung existiert nicht': Warum schlägt meine Abfrage fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!