Memadam Data daripada Berbilang Jadual Serentak dengan MySQL
Apabila menguruskan pangkalan data dengan berbilang jadual yang berkaitan dengan entiti tertentu, ia menjadi perlu untuk memadam semua data yang berkaitan apabila mengalih keluar entiti itu. Timbul persoalan: bolehkah kita melakukan ini dengan cekap tanpa melaksanakan berbilang kenyataan DELETE?
Jawapannya terletak pada sokongan MySQL untuk operasi DELETE berbilang jadual. Manual menerangkan:
Anda boleh menentukan berbilang jadual dalam pernyataan DELETE untuk memadamkan baris daripada satu atau lebih jadual berdasarkan syarat khusus dalam klausa WHERE.
Ciri ini membolehkan kami memadamkan data daripada berbilang jadual serentak menggunakan satu pertanyaan. Mari kita lihat semula contoh yang diberikan dalam soalan:
DELETE FROM table1 WHERE user_id='$user_id'; DELETE FROM table2 WHERE user_id='$user_id'; DELETE FROM table3 WHERE user_id='$user_id'; DELETE FROM table4 WHERE user_id='$user_id';
Sebaliknya, kita boleh menulis semula pertanyaan ini seperti berikut:
DELETE t1, t2, t3, t4 FROM t1 INNER JOIN t2 ON t1.user_id=t2.user_id INNER JOIN t3 ON t2.user_id=t3.user_id INNER JOIN t4 ON t3.user_id=t4.user_id WHERE t1.user_id='user_id_to_delete';
Dengan menggunakan kata kunci INNER JOIN, kami memautkan jadual berdasarkan medan biasa user_id. Klausa WHERE menentukan ID pengguna data yang akan dipadamkan. Pertanyaan ini secara berkesan memadamkan semua baris yang berkaitan dengan ID pengguna yang ditentukan daripada keempat-empat jadual dalam satu operasi.
Adalah penting untuk ambil perhatian bahawa penggunaan ORDER BY atau LIMIT tidak dibenarkan dalam kenyataan DELETE berbilang jadual, kerana operasi ini khusus untuk satu jadual dan akan menjejaskan jujukan pemadaman. Selain itu, pengguna mesti mempunyai kebenaran yang diperlukan untuk memadam data daripada semua jadual yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Data dengan Cekap daripada Berbilang Jadual MySQL Secara serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!