MySQL veritabanında birden fazla tabloda silme işlemi

MySQL veritabanında seçme, ekleme ve güncelleme dışında bir de silme işlemi yapmaktayız yoğun olarak elbet. Ancak bu sorgularımızdaki titizliği, silme sorgularımızda göstermiyoruz. Tek sorgu ile birden fazla tabloda silme yapabilecek olmamıza karşın, bunu birden fazla sorgu ile yapmayı tercih ediyoruz.

Birden fazla tablodan veri silinmesi

Web sitemize üye alımı yaptığımızı kabul edelim. Tüm üye hesap bilgileri db_uye tablomuzda, ve üyelerin profil bilgileri ise db_uye_data tablosunda yer alsın. Ana tabloda benzersiz üye numarsı ID, ve profil tablosundaki eşdeğeri ise uyeID sütunu olsun.

Gün gelip 125 ID numaralı üyeyi silmek istersek,

[SQL]DELETE FROM db_uye WHERE ID=125
DELETE FROM db_uye_data WHERE uyeID=125
[/SQL]

sorgularını kullanmak olmaz. Ancak genelde böyle kullanırız bizler. Ama gelin onu tek sorguya indirelim ve artık alttakini kullanalım.

[SQL]DELETE bu, bud FROM db_uye AS bu, db_uye_data AS bud WHERE bu.ID=bud.uyeID AND bu.ID=125[/SQL]

Gördüğünüz gibi birbirlerine benzersiz üye numarası ile ilişkili olan her iki tablodan da silme işlemini yaptık. Buradaki tablo sayısını, tabloların ilişki durumlara göre elbet de çoğaltabilirsiniz.