Postgres DELETE ralat pertanyaan: "Lajur tidak wujud"
Apabila melaksanakan pernyataan DELETE dalam PostgreSQL, anda mungkin menghadapi ralat "ERROR: column "column name" does not exist". Ralat mengelirukan ini biasanya berlaku apabila pembolehubah dalam keadaan pertanyaan disertakan dalam petikan berganda ("), yang ditafsirkan oleh PostgreSQL sebagai nama lajur dan bukannya nilai.
Sebagai contoh, pertanyaan berikut menghasilkan ralat di atas:
<code class="language-sql">delete from "Tasks" where id = "fc1f56b5-ff41-43ed-b27c-39eac9354323";</code>
Mesej ralat menunjukkan bahawa PostgreSQL sedang cuba mencari lajur bernama "fc1f56b5-ff41-43ed-b27c-39eac9354323" dalam jadual "Tasks". Walau bagaimanapun, lajur ini tidak wujud.
Masalahnya ialah PostgreSQL menganggap apa-apa sahaja yang disertakan dalam petikan berganda (") sebagai pengecam, termasuk nama jadual, nama prosedur dan nama lajur. Dalam kes ini, disebabkan penggunaan petikan berganda, PostgreSQL salah merawat nilai "fc1f56b5 - ff41-43ed-b27c-39eac9354323" ditafsirkan sebagai nama lajur.
Untuk menyelesaikan isu ini, pastikan pemalar aksara disertakan dalam petikan tunggal (') dan bukannya petikan berganda. Petikan tunggal membenarkan PostgreSQL mengenali dengan betul nilai yang ditentukan sebagai pemalar dan bukannya nama lajur. Pertanyaan yang betul hendaklah:
<code class="language-sql">delete from "Tasks" where id = 'fc1f56b5-ff41-43ed-b27c-39eac9354323';</code>
Atas ialah kandungan terperinci Mengapa Postgres Saya PADAM Pertanyaan Gagal dengan 'Lajur Tidak Wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!