Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan PostgreSQL DELETE Saya Gagal dengan 'Lajur Tidak Wujud' Apabila Menggunakan IN (Senarai)?

Mengapa Pertanyaan PostgreSQL DELETE Saya Gagal dengan 'Lajur Tidak Wujud' Apabila Menggunakan IN (Senarai)?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-17 02:59:25261semak imbas

Why Does My PostgreSQL DELETE Query Fail with

Postgres: Ralat Pertanyaan "Lajur Tidak Wujud" dengan WHERE IN (Senarai)

Dalam PostgreSQL, pertanyaan

DELETE FROM user_job_titles WHERE id IN (
"c836d018-1d12-4507-a268-a4d80d6d3f54",
"d0961a90-7d31-4c4c-9c1b-671115e3d833",
"62dda420-6e62-4017-b41d-205c0aa82ead"
)

gagal dengan ralat "ralat: lajur [nilai] tidak wujud". Ini kerana:

Petikan Berganda dan Melarikan Diri

Dalam PostgreSQL, petikan berganda digunakan sebagai aksara melarikan diri untuk merujuk kepada nama jadual dan lajur. Apabila digunakan secara tidak sengaja dengan literal rentetan, ia boleh membawa kepada sintaks yang salah. Dalam pertanyaan yang diberikan, nilai dalam senarai IN disertakan dalam petikan berganda, menyebabkan PostgreSQL mentafsirkannya sebagai nama lajur dan bukannya pemalar rentetan.

Penyelesaian: Sertakan Nilai dalam Petikan Tunggal

Kepada selesaikan isu, sertakan nilai dalam petikan tunggal:

DELETE FROM user_job_titles WHERE id IN (
'c836d018-1d12-4507-a268-a4d80d6d3f54',
'd0961a90-7d31-4c4c-9c1b-671115e3d833',
'62dda420-6e62-4017-b41d-205c0aa82ead'
);

Dengan cara ini, PostgreSQL mentafsir nilai sebagai pemalar rentetan dan membandingkannya dengan betul dengan lajur id jadual user_job_titles.

Atas ialah kandungan terperinci Mengapa Pertanyaan PostgreSQL DELETE Saya Gagal dengan 'Lajur Tidak Wujud' Apabila Menggunakan IN (Senarai)?. 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