Master/detay da kayıt Silerken baglı alanı silen sql sorgusu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
fatsali_85
Üye
Mesajlar: 26
Kayıt: 07 Oca 2008 11:55

Master/detay da kayıt Silerken baglı alanı silen sql sorgusu

Mesaj gönderen fatsali_85 »

s.a. arkadaşlar
2 tablo arasında master detay yaptık
ve ana tablodan bir kayıt silinince detay tablodan da o alana bağlı kayıtlar silinsin istiyorum
master detay yaptıgım alanın adı KYIT
Veritabanım fireBird
ana tablom MERKEZ
detay Tablom SUBE

kayıt silme olayını da bir buton yardımıyla yapıyorum
butonun onklik ine yazmam gereken s-q-l kodunun

Kod: Tümünü seç

SELECT * FROM MERKEZ............................

den sonrasını cıkartamadım yardım edebilirmisiniiz acaba
[/b]
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: Master/detay da kayıt Silerken baglı alanı silen sql sor

Mesaj gönderen ikutluay »

fatsali_85 yazdı:s.a. arkadaşlar
2 tablo arasında master detay yaptık
ve ana tablodan bir kayıt silinince detay tablodan da o alana bağlı kayıtlar silinsin istiyorum
master detay yaptıgım alanın adı KYIT
Veritabanım fireBird
ana tablom MERKEZ
detay Tablom SUBE

kayıt silme olayını da bir buton yardımıyla yapıyorum
butonun onklik ine yazmam gereken s-q-l kodunun

Kod: Tümünü seç

SELECT * FROM MERKEZ............................

den sonrasını cıkartamadım yardım edebilirmisiniiz acaba
[/b]

Kod: Tümünü seç

delete from sube where subebaglioldugumerkezkodu=merkez
delete merkez where merkezkodu=merkez
bu işi muhakkak bir transaction içinde yapın aksi takdirde birgün verileriniz çorba olabilir.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
fatsali_85
Üye
Mesajlar: 26
Kayıt: 07 Oca 2008 11:55

Mesaj gönderen fatsali_85 »

cok tesekkür ederim tavsiyeniz i dikkate alacağımdan emin olabilirsiniz :-D
Kullanıcı avatarı
fatsali_85
Üye
Mesajlar: 26
Kayıt: 07 Oca 2008 11:55

Mesaj gönderen fatsali_85 »

s.a. arkadaşlar daha önce sorundan bahsetmşitim ve arkadaşın önerisi olmustu son olarak problemime buldugum çözümü sizinle paylaşmak istiyorum
şöyle ki ..,

firebird veritabanı kullanıyorum
MERKEZ tablomda After trigger olayında yeni bir After Trigger olusturdum
ve içine

Kod: Tümünü seç

delete from SUBE  where MUS_ID= old MUSID ;
seklinde bir kod yazdım bu kod ile
SUBE tablomdaki MUS_ID=19 olan alanları siliyor ve MUSTERI tablomdaki
MUSID =19 olan alanları da bularak siliyor ve bende Sorunumu bu sekilde cözmüş oluyorum
herkese kolay gelsin iyi calışmalar VEsSeLaM...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu konuda CASCADE silme yapılabilir :idea: Detay tablodaki FK (Foreing Key) ler CASCADE tanımlanmışsa master kayıt silinince detaylar da silinir :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla