• 31-12-2009, 15:20:22
    #1
    Trigger ile tablomda belirli bir alanın güncellenip güncellenmediğini kontrol edebilir miyim ?

    Normal update triggeri yazdığımda tabloda herhangi bir alan güncellendiğinde trigger çalışıyor. Benim istediğim belirlediğim alanın güncellenmesine göre bazı işlemler yaptırmak.

    Aklıma gelen yöntem update yapılmadan önce o alandaki değeri alarak update den sonraki değer ile karşılaştırarak eğer güncelleme yapıldı ise işlemlerimi ona göre yaptırmak.
    fakat update öncesi aldığım değeri ne şekilde saklamalıyım ki update den sonraki değer ile karşılaştırabileyim. Yardımcı olursanız sevinirim.
  • 31-12-2009, 18:13:10
    #2
    Mysql ile pek uğraşmıyorum ama sanırım şu yolu izlersen işini görür :

    ilk önce tablo_control isminde bir tablo oluştur.
    burada onceki ve sonraki isminde 2 adet alan olsun.

    sonra aşağıda yazdığım triggeri kendince uyarla :

    Alıntı
    CREATE TRIGGER update_control BEFORE UPDATE ON tabloadi FOR EACH ROW
    BEGIN
    IF NEW.sutunadi != OLD.sutunadi THEN
    INSERT INTO tablo_control
    VALUES (OLD.sutunadi , NEW.sutunadi)
    END IF;
    END;
  • 02-01-2010, 22:36:48
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Güzel bir trigger. Paylaşım için teşekkürler.
  • 04-01-2010, 14:19:31
    #4
    Meksikalı adlı üyeden alıntı: mesajı görüntüle
    Mysql ile pek uğraşmıyorum ama sanırım şu yolu izlersen işini görür :

    ilk önce tablo_control isminde bir tablo oluştur.
    burada onceki ve sonraki isminde 2 adet alan olsun.

    sonra aşağıda yazdığım triggeri kendince uyarla :
    teşekkürler cevabın işimi gördü fakat phpmyadmin de kullancak arkadaşlar delimiter (sınırlayıcı) bunu noktalı virgülden başka bir karakter yapsınlar yoksa hata alırlar birde begin ve end kullanmaya gerek yok mysql herhangi bir hata vermedi begin end eklemeyince