Rumah >pangkalan data >tutorial mysql >Mengapa Pernyataan PostgreSQL DELETE Saya di Java Gagal dengan 'Lajur tidak wujud'?

Mengapa Pernyataan PostgreSQL DELETE Saya di Java Gagal dengan 'Lajur tidak wujud'?

Susan Sarandon
Susan Sarandonasal
2024-12-19 10:10:10805semak imbas

Why Does My PostgreSQL DELETE Statement in Java Fail with

Ralat Postgresql: "Lajur tidak wujud" dalam Operasi Java DELETE

Apabila mencuba operasi DELETE menggunakan Java dan PostgreSQL, seseorang mungkin menghadapi ralat "column 'column_name' tidak wujud." Masalah ini timbul apabila nama lajur yang dimaksudkan mengandungi huruf besar.

Dalam PostgreSQL, pengecam pangkalan data (cth., nama jadual dan lajur) mesti dipetik jika ia mengandungi aksara besar. Ini kerana laluan carian skema lalai adalah tidak peka huruf besar dan kecil dan petikan memastikan bahawa nama yang tepat digunakan.

Penyelesaian:

Untuk menyelesaikan ralat, letakkan sahaja petikan berganda di sekeliling nama lajur dalam pernyataan SQL:

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

Sebagai alternatif, anda boleh menggunakan interpolasi Rentetan untuk bina pernyataan SQL secara dinamik dengan nama lajur yang dipetik:

String column = "MAC";
String stm = String.format("DELETE FROM hostdetails WHERE \"%s\" = 'kzhdf'", column);

Pertimbangan Tambahan:

Apabila menggunakan pernyataan yang disediakan, adalah disyorkan untuk mengelak daripada menetapkan parameter pertanyaan terus dalam rentetan SQL. Sebaliknya, gunakan kaedah PreparedStatement untuk mengikat parameter:

pst.setString(1, "kzhdf");

Ini menghalang potensi kelemahan suntikan SQL dan menjadikan kod lebih boleh diselenggara.

Atas ialah kandungan terperinci Mengapa Pernyataan PostgreSQL DELETE Saya di Java Gagal dengan 'Lajur tidak wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn