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
Lepaskan: 2024-12-19 10:10:10
asal
764 orang telah melayarinya

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'";
Salin selepas log masuk

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);
Salin selepas log masuk

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");
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan