Heim > Datenbank > MySQL-Tutorial > Warum schlägt meine PostgreSQL-DELETE-Abfrage mit der Meldung „Spalte existiert nicht' fehl?

Warum schlägt meine PostgreSQL-DELETE-Abfrage mit der Meldung „Spalte existiert nicht' fehl?

Mary-Kate Olsen
Freigeben: 2024-12-18 00:29:08
Original
651 Leute haben es durchsucht

Why Does My PostgreSQL DELETE Query Fail with

Spalte ist in PostgreSQL-DELETE-Abfrage nicht vorhanden

In PostgreSQL erfordert das Ausführen einer DELETE-Abfrage mit einer „WHERE IN“-Klausel besondere Aufmerksamkeit. Ein häufiger Fehler, der auf die Vertrautheit mit anderen SQL-Dialekten zurückzuführen ist, ist die Verwendung von doppelten Anführungszeichen für Zeichenfolgenkonstanten.

Im bereitgestellten Beispiel versucht die Abfrage, Zeilen aus der Tabelle „user_job_titles“ basierend auf einer Liste von IDs zu löschen in doppelte Anführungszeichen eingeschlossen:

DELETE FROM user_job_titles
WHERE id IN (
"c836d018-1d12-4507-a268-a4d80d6d3f54",
"d0961a90-7d31-4c4c-9c1b-671115e3d833",
"62dda420-6e62-4017-b41d-205c0aa82ead"
);
Nach dem Login kopieren

Doppelte Anführungszeichen haben jedoch in PostgreSQL eine besondere Bedeutung. Sie werden verwendet, um Tabellen- und Spaltennamen zu maskieren. Infolgedessen schlägt die Abfrage mit der Fehlermeldung fehl, dass die Spalte mit dem Namen „c836d018-1d12-4507-a268-a4d80d6d3f54“ nicht existiert.

Um die Abfrage zu beheben, ersetzen Sie die doppelten Anführungszeichen durch einfache Anführungszeichen für String-Konstanten:

DELETE FROM user_job_titles
WHERE id IN ('c836d018-1d12-4507-a268-a4d80d6d3f54',
             'd0961a90-7d31-4c4c-9c1b-671115e3d833',
             '62dda420-6e62-4017-b41d-205c0aa82ead'
            );
Nach dem Login kopieren

Denken Sie daran, dass doppelte Anführungszeichen nur verwendet werden, um Schließen Sie Tabellen- und Spaltennamen in PostgreSQL ein, während für Zeichenfolgenliterale einfache Anführungszeichen verwendet werden. Die Verwendung des richtigen Anführungszeichentyps ist entscheidend für die korrekte Ausführung von SQL-Abfragen.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine PostgreSQL-DELETE-Abfrage mit der Meldung „Spalte 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