3 tablodan silme

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
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

3 tablodan silme

Mesaj gönderen true_false »

merhabalar

Kod: Tümünü seç

user tablosu
userıd    user_name
[b]3[/b]           mehmet

Kod: Tümünü seç

mesaj tablosu
msj_id     sender_id
   1           [b]3[/b]

Kod: Tümünü seç

işlem tablosu
islem_id    islemsender_id
  13            [b]3[/b]
sorum şu= user tablosun kullanıcı silindiği zaman mesaj tablosundan gönderdiği mesajları işlem tablosundan gönderdiği işlemleri silen bir sql kod da bana yardımcı olabilirmisiniz
not şimdiden gönderdiğiniz güzel cevaplar için teşekkür ederim
type
Tform1 = class(Tform)
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

foreing keyi uygun şekilde tanımlarsanız bu işlemi rdbms sizin yerinize otomatik olarak yapar. fk yapatığınız sırada no action, cascade delete, cascade update , set null gibi parametreleri vardır. delete seçeneğini seçtiğniz zaman otomatik olarak detail kayıtlar da silinir.

ama genelde bu tip kullanımda ortaya bazı istenmeyen sonuçlar çıkabilir.

before delete tetikleyicinde uygun sql kodlarını yazarak bu kayıtları sizin silmeniz daha uygun olabilir...

Kod: Tümünü seç

delete from mesajlar 
where UserID = :UserID; (delete.UserID veya old.UserID olabilir emin değilim)

delete from Islemler
where UserID = :UserID;
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Cevapla