ホームページ >データベース >mysql チュートリアル >PostgreSQL の DELETE ステートメントが「エラー: 列が存在しません」で失敗するのはなぜですか?

PostgreSQL の DELETE ステートメントが「エラー: 列が存在しません」で失敗するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-19 08:34:091003ブラウズ

Why Does My PostgreSQL DELETE Statement Fail with

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。