Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich in meiner PostgreSQL-INSERT-Anweisung die Fehlermeldung „Spalte „X' existiert nicht'?

Warum erhalte ich in meiner PostgreSQL-INSERT-Anweisung die Fehlermeldung „Spalte „X' existiert nicht'?

DDD
Freigeben: 2025-01-12 07:29:43
Original
666 Leute haben es durchsucht

PostgreSQL INSERT-Anweisungsfehler: „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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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.

"Why

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage