Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan PostgreSQL DELETE Saya Gagal dengan 'Lajur Tidak Wujud'?

Mengapa Pertanyaan PostgreSQL DELETE Saya Gagal dengan 'Lajur Tidak Wujud'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-18 00:29:08728semak imbas

Why Does My PostgreSQL DELETE Query Fail with

Lajur Tidak Wujud dalam PostgreSQL DELETE Query

Dalam PostgreSQL, menjalankan pertanyaan DELETE dengan klausa "WHERE IN" memerlukan perhatian khusus. Kesilapan biasa yang berpunca daripada kebiasaan dengan dialek SQL lain ialah penggunaan petikan berganda untuk pemalar rentetan.

Dalam contoh yang diberikan, pertanyaan cuba memadamkan baris daripada jadual "user_job_titles" berdasarkan senarai ID disertakan dalam petikan berganda:

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

Walau bagaimanapun, petikan berganda mempunyai makna istimewa dalam PostgreSQL. Ia digunakan untuk melepaskan nama jadual dan lajur. Akibatnya, pertanyaan gagal dengan ralat menyatakan bahawa lajur dengan nama "c836d018-1d12-4507-a268-a4d80d6d3f54" tidak wujud.

Untuk membetulkan pertanyaan, gantikan petikan berganda dengan petikan tunggal untuk pemalar rentetan:

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

Ingat, petikan berganda ialah digunakan hanya untuk melampirkan nama jadual dan lajur dalam PostgreSQL, manakala petikan tunggal digunakan untuk literal rentetan. Menggunakan jenis petikan yang betul adalah penting untuk pelaksanaan pertanyaan SQL yang betul.

Atas ialah kandungan terperinci Mengapa Pertanyaan PostgreSQL DELETE Saya 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