PostgreSQL から削除する際の「エラー: 列が存在しません」のトラブルシューティング
Java JDBC を使用して PostgreSQL テーブルからレコードを削除しようとすると、 DELETE クエリで指定された列が存在しないことを示すエラーが発生する場合があります。この問題を解決するには、次の点を考慮してください。
エンティティ名の大文字と小文字の区別
PostgreSQL では、エンティティ名 (テーブル名や列名など) では大文字と小文字が区別されます。列名に大文字が含まれている場合は、大文字と小文字を区別しないように二重引用符 ("") で囲む必要があります。
たとえば、列の名前が「MAC」の場合、クエリを次のように変更します。
String stm = "DELETE FROM hostdetails WHERE \"MAC\" = 'kzhdf'";
準備されたステートメントでの直接値の設定を避ける
を使用する準備されたステートメントで直接値を設定する pst.executeUpdate() は推奨されません。代わりに、 pst.setString(1, "kzhdf") を使用してパラメータ値を安全に設定します。
String stm = "DELETE FROM hostdetails WHERE \"MAC\" = ?"; ... pst.setString(1, "kzhdf"); pst.executeUpdate();
これにより、潜在的な特殊文字や SQL インジェクションの試みが安全に処理されます。
以上がPostgreSQL の DELETE ステートメントが「エラー: 列が存在しません」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。