Pemadaman silang jadual MySQL: penyelesaian masalah ralat sintaks
Dalam MySQL, memadamkan baris daripada berbilang jadual secara serentak memerlukan sintaks pertanyaan khas. Apabila cuba melaksanakan pertanyaan padam berikut:
DELETE FROM `pets` p, `pets_activities` pa WHERE p.`order` > :order AND p.`pet_id` = :pet_id AND pa.`id` = p.`pet_id`
Anda mungkin menghadapi ralat berikut:
<code>Uncaught Database_Exception [ 1064 ]: You have an error in your SQL syntax; check the manual...</code>
Ralat ini berpunca daripada ralat sintaks dalam pemadaman silang jadual. Untuk menyelesaikan masalah ini, gunakan JOIN dalam kenyataan DELETE:
DELETE p, pa FROM pets p JOIN pets_activities pa ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id
Sebagai alternatif, untuk memadam hanya daripada jadual pets_activities
, anda boleh menggunakan:
DELETE pa FROM pets_activities pa JOIN pets p ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id
Dengan menggunakan pernyataan JOIN dengan cara ini, anda boleh melaksanakan operasi pemadaman silang jadual dengan cekap dalam MySQL. Perlu diingat bahawa pendekatan ini juga berfungsi untuk pemadaman satu jadual dengan integriti rujukan.
Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Baris Merentasi Pelbagai Jadual dengan betul dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!