Heim > Datenbank > MySQL-Tutorial > Warum schlägt meine PostgreSQL-Abfrage mit „Beziehung existiert nicht' fehl, obwohl die Tabelle vorhanden ist?

Warum schlägt meine PostgreSQL-Abfrage mit „Beziehung existiert nicht' fehl, obwohl die Tabelle vorhanden ist?

Susan Sarandon
Freigeben: 2025-01-20 13:41:09
Original
829 Leute haben es durchsucht

Why Does My PostgreSQL Query Fail with

PostgreSQL-Abfragefehler: Fehler „Beziehung existiert nicht“

Problem

Das Ausführen einer Datenbankabfrage führt zu dem Fehler „Beziehung existiert nicht“, selbst wenn der Tabellenname korrekt erscheint.

Lösung

Dieser Fehler weist normalerweise auf ein Problem mit der Referenzierung des Tabellennamens hin. Die häufigste Ursache ist ein Problem mit der Groß-/Kleinschreibung. PostgreSQL unterscheidet bei Tabellennamen zwischen Groß- und Kleinschreibung.

Diese Abfrage schlägt beispielsweise fehl:

<code class="language-sql">CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!</code>
Nach dem Login kopieren

Die Lösung besteht darin, die Groß-/Kleinschreibung Ihres Tabellennamens genau anzupassen und doppelte Anführungszeichen zu verwenden:

<code class="language-sql">SELECT * FROM "SF_Bands";</code>
Nach dem Login kopieren

Verwendung des Schema-Suchpfads

Ein anderer Ansatz besteht darin, Ihr search_path zu ändern. Diese Einstellung bestimmt die Reihenfolge, in der PostgreSQL nach Objekten (wie Tabellen) in Ihrer Datenbank sucht. Durch Hinzufügen des Schemas der Tabelle zum Suchpfad können Sie auf die Tabelle verweisen, ohne das Schema explizit anzugeben.

So überprüfen Sie Ihren aktuellen Suchpfad:

<code class="language-sql">SHOW search_path;</code>
Nach dem Login kopieren

So fügen Sie das Schema showfinder hinzu (ersetzen Sie es durch Ihr tatsächliches Schema):

<code class="language-sql">SET search_path TO showfinder,public;</code>
Nach dem Login kopieren

Nachdem Sie den Suchpfad angepasst haben, können Sie die Tabelle mit dem Kleinbuchstabennamen abfragen:

<code class="language-sql">SELECT * FROM sf_bands;</code>
Nach dem Login kopieren

Umfassende Details zur Konfiguration search_path finden Sie in der offiziellen PostgreSQL-Dokumentation: https://www.php.cn/link/d7323519970d0e3680ef5fa1edfe0e56

Das obige ist der detaillierte Inhalt vonWarum schlägt meine PostgreSQL-Abfrage mit „Beziehung existiert nicht' fehl, obwohl die Tabelle vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage