Pemadaman selamat berbilang jadual MySQL bagi rekod
Menggunakan kod berikut secara langsung untuk memadamkan baris daripada berbilang jadual secara serentak boleh mengakibatkan ralat:
DELETE FROM `pets` p, `pets_activities` pa WHERE p.`order` > :order AND p.`pet_id` = :pet_id AND pa.`id` = p.`pet_id`
Penyelesaian yang disyorkan ialah menggunakan kenyataan JOIN:
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, anda boleh memadamkan sahaja rekod dalam jadual pets_activities
sambil merujuk jadual pets
:
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
Pendekatan ini menggunakan alias dalam klausa FROM
untuk menentukan jadual yang akan digugurkan dan amat berguna apabila menangani senario kompleks dengan integriti rujukan.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod dengan Selamat daripada Berbilang Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!