Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine SQL-Abfrage aufgrund der Groß-/Kleinschreibung mit der Meldung „Spalte ... existiert nicht' fehl?
PostgreSQL-Groß-/Kleinschreibung und SQL-Abfragefehler: „Spalte ... existiert nicht“
Das Ausführen von SQL-Joins kann manchmal zu dem frustrierenden Fehler „Spalte ‚Spaltenname‘ existiert nicht“ führen. Dies liegt häufig an einer Nichtübereinstimmung der Groß-/Kleinschreibung zwischen dem Spaltennamen in Ihrer Abfrage und dem tatsächlichen, Groß-/Kleinschreibung berücksichtigenden Namen, der im Datenbankschema definiert ist. PostgreSQL reagiert hierauf im Gegensatz zu einigen anderen Datenbanksystemen besonders empfindlich.
Das Problem:
Bedenken Sie diese fehlgeschlagene Abfrage:
<code class="language-sql">select sim.id as idsim, num.id as idnum from main_sim sim left join main_number num on (FK_Numbers_id=num.id);</code>
Die Fehlermeldung verweist auf die nicht vorhandene Spalte „FK_Numbers_id“ in der Tabelle main_sim
.
Die Lösung:
Die Spalte existiert, aber die richtige Großschreibung ist entscheidend. Die Groß-/Kleinschreibung von PostgreSQL erfordert eine präzise Übereinstimmung. Die korrigierte Abfrage lautet:
<code class="language-sql">select sim.id as idsim, num.id as idnum from main_sim sim left join main_number num on ("FK_Numbers_id" = num.id);</code>
Warum das funktioniert:
Das Einschließen des Spaltennamens "FK_Numbers_id"
in doppelte Anführungszeichen zwingt PostgreSQL dazu, ihn wörtlich zu behandeln, unabhängig von der Groß-/Kleinschreibung. Ohne die Anführungszeichen interpretiert PostgreSQL den Spaltennamen gemäß seinen Standard-Fallregeln, was zu dem Fehler führt. Durch die Verwendung von doppelten Anführungszeichen wird eine genaue Übereinstimmung mit der Definition des Datenbankschemas sichergestellt.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine SQL-Abfrage aufgrund der Groß-/Kleinschreibung mit der Meldung „Spalte ... existiert nicht' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!