Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine PostgreSQL-DELETE-Anweisung mit „Fehler: Spalte existiert nicht' fehl?

Warum schlägt meine PostgreSQL-DELETE-Anweisung mit „Fehler: Spalte existiert nicht' fehl?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-19 08:34:091001Durchsuche

Why Does My PostgreSQL DELETE Statement Fail with

Fehlerbehebung „Fehler: Spalte existiert nicht“ beim Löschen aus PostgreSQL

Beim Versuch, Datensätze aus einer PostgreSQL-Tabelle mit Java JDBC zu löschen, Möglicherweise wird ein Fehler angezeigt, der darauf hinweist, dass die in der DELETE-Abfrage angegebene Spalte nicht vorhanden ist. Um dieses Problem zu beheben, beachten Sie Folgendes:

Escape-Entitätsnamen-Groß-/Kleinschreibung beachten

Bei PostgreSQL wird bei Entitätsnamen (z. B. Tabellen- und Spaltennamen) zwischen Groß- und Kleinschreibung unterschieden. Wenn Ihr Spaltenname Großbuchstaben enthält, müssen Sie ihn in doppelte Anführungszeichen („“) setzen, um die Groß-/Kleinschreibung zu vermeiden.

Wenn Ihre Spalte beispielsweise „MAC“ heißt, ändern Sie Ihre Abfrage wie folgt:

String stm = "DELETE FROM hostdetails WHERE \"MAC\" = 'kzhdf'";

Direkte Wertfestlegung in vorbereiteten Anweisungen vermeiden

Verwendung von pst.executeUpdate() mit direkter Wertfestlegung in vorbereiteten Aussagen wird nicht empfohlen. Verwenden Sie stattdessen pst.setString(1, „kzhdf“), um den Parameterwert sicher festzulegen.

String stm = "DELETE FROM hostdetails WHERE \"MAC\" = ?";
...
pst.setString(1, "kzhdf");
pst.executeUpdate();

Dadurch wird sichergestellt, dass alle potenziellen Sonderzeichen oder SQL-Injection-Versuche sicher behandelt werden.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine PostgreSQL-DELETE-Anweisung mit „Fehler: Spalte existiert nicht' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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