BEGIN
DECLARE debt_amount DECIMAL(10, 2);
-- Ödeme durumu güncellenmiş mi kontrol et
IF NEW.odeme_durumu != OLD.odeme_durumu THEN
-- Ödeme durumu 1 (ödendi) yapılmışsa borçtan düş
IF NEW.odeme_durumu = 1 THEN
SET debt_amount = -(SELECT liste_tutar FROM satis_liste_kayit WHERE id = NEW.id);
-- Ödeme durumu 0 (ödenmemiş) ise borca ekle
ELSE
SET debt_amount = (SELECT liste_tutar FROM satis_liste_kayit WHERE id = NEW.id);
END IF;
-- Müşteri borcunu güncelle
UPDATE musteri_borc
SET borc_tutari = borc_tutari + debt_amount
WHERE musteri_id = NEW.musteri_id;
END IF;
END
Kod satis_liste_kayit tablosunda bir update olduğunda çalışıyor.
Bu sql tetikleyici kodum ödeme durumunda bir değişiklik olduğunda müşteri borcunu güncelliyor ama sıkıntı şurada ödeme durumunu 1 yaptığımda (ödendi) borçtan liste tutarını düşüyor ama 0 yapınca (ödenmedi) borca o tutarı eklemiyor. Sorun nerede ?