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
Lepaskan: 2024-12-18 00:29:08
asal
649 orang telah melayarinya

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

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

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!

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