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:
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.
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!