Heim > Datenbank > MySQL-Tutorial > Warum schlägt meine PostgreSQL-INSERT-Anweisung mit der Fehlermeldung „Spalte „X' existiert nicht' fehl?

Warum schlägt meine PostgreSQL-INSERT-Anweisung mit der Fehlermeldung „Spalte „X' existiert nicht' fehl?

Barbara Streisand
Freigeben: 2025-01-12 07:00:46
Original
402 Leute haben es durchsucht

Why Does My PostgreSQL INSERT Statement Fail with

PostgreSQL-Datenbankfehler: „Spalte ‚X‘ existiert nicht“

Im angegebenen PostgreSQL-Code führt der Versuch, Daten in die Tabelle einzufügen, zu folgendem Fehler:

Fehlermeldung:

<code>psql:createConfigChangeLog.sql:11: ERROR:  column "5837-2016-08-24_09-12-22" does not exist</code>
Nach dem Login kopieren

Fehlergrund:

Dieser Fehler tritt auf, weil PostgreSQL den Wert der Spalte last_config_version als Spaltennamen und nicht als Literalzeichenfolge interpretiert. PostgreSQL erfordert, dass Zeichenfolgenkonstanten in einfache Anführungszeichen gesetzt werden.

Lösung:

Um dieses Problem zu lösen, sollte die Literalzeichenfolge der Spalte last_config_version in einfache Anführungszeichen gesetzt werden:

<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

Escape von einfachen Anführungszeichen in Daten:

Alternativ können einfache Anführungszeichen in den Daten durch doppeltes Schreiben maskiert werden:

<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

Bitte beachten Sie, dass die erste Methode einfache Anführungszeichen verwendet und die inneren einfachen Anführungszeichen maskiert, was der standardmäßigere und empfohlene Ansatz ist. Die zweite Methode verwendet doppelte Anführungszeichen, was in manchen Fällen zwar funktioniert, aber nicht so klar und portabel ist wie die erste Methode.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine PostgreSQL-INSERT-Anweisung mit der Fehlermeldung „Spalte „X' existiert nicht' fehl?. 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