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!