Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich in meiner PostgreSQL-INSERT-Anweisung die Fehlermeldung „Spalte „X' existiert nicht'?
Beim Einfügen von Daten in eine PostgreSQL-Tabelle weist der Fehler „Spalte „X“ existiert nicht“ oft auf ein Problem mit den in der INSERT
-Anweisung bereitgestellten Werten hin. Dies ist normalerweise auf falsch formatierte Zeichenfolgenliterale zurückzuführen.
Die Fehlermeldung, wie sie im ursprünglichen Problem angezeigt wird, weist wahrscheinlich auf ein Problem mit der Spalte last_config_version
hin. Falsche Anführungszeichen des Zeichenfolgenwerts sind die häufigste Ursache.
Das Problem: Falsche Anführungszeichen in Zeichenfolgen
PostgreSQL verwendet einfache Anführungszeichen ('
), um Zeichenfolgenliterale abzugrenzen. Durch die Verwendung von doppelten Anführungszeichen ("
) wird die Zeichenfolge als Spaltenbezeichner behandelt, was zum Fehler „Spalte 'X' existiert nicht“ führt, wenn es sich bei dieser Zeichenfolge nicht um einen tatsächlichen Spaltennamen handelt.
Lösung 1: Korrekte Anführungszeichen in Zeichenfolgen
Der richtige Weg, den last_config_version
-Wert einzufügen, besteht darin, ihn in einfache Anführungszeichen zu setzen:
<code class="language-sql">INSERT INTO config_change_log (last_config_version, is_done, change_description) VALUES ('5837-2016-08-24_09-12-22', false, '{ ''key'':''value''}');</code>
Beachten Sie die Verwendung von einfachen Anführungszeichen um den Wert last_config_version
. Außerdem werden innerhalb der change_description
JSON-ähnlichen Zeichenfolge einfache Anführungszeichen durch Verdoppelung maskiert (''
).
Lösung 2: Umgang mit einfachen Anführungszeichen innerhalb von Daten
Wenn Ihre Daten einfache Anführungszeichen erfordern, müssen Sie diese durch Verdoppelung umgehen. Zum Beispiel:
<code class="language-sql">INSERT INTO config_change_log (last_config_version, is_done, change_description) VALUES ('5837-2016-08-24_09-12-22', false, '{ "key":"value"}');</code>
Dies setzt voraus, dass change_description
JSON-Daten enthalten soll und dass Sie doppelte Anführungszeichen für Schlüssel und Werte innerhalb der JSON-Zeichenfolge verwenden, was eine standardmäßige JSON-Praxis ist. Wenn es sich nicht um JSON handelt, passen Sie es entsprechend an, indem Sie das entsprechende Escapezeichen für den Datentyp verwenden.
Durch korrekte Anführungszeichen von Zeichenfolgenliteralen und das Escapen von einfachen Anführungszeichen bei Bedarf werden Ihre INSERT
-Anweisungen erfolgreich ausgeführt und der Fehler „Spalte „X“ existiert nicht“ vermieden. Überprüfen Sie Ihre Syntax immer noch einmal, insbesondere in Bezug auf Zeichenfolgenwerte, um dieses häufige PostgreSQL-Problem zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meiner PostgreSQL-INSERT-Anweisung die Fehlermeldung „Spalte „X' existiert nicht'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!