2 Kasım 2011 Çarşamba

Bir tabloda yapılan işlemi (insert, update, delete) başka bir tabloda yapmak


Bir tabloya kayıt eklendiğinde güncellendiğinde veya silindiğinde başka tabloda da aynı işlemleri yaptırmak.


Bu işlemi kullanılan tablonuza bir trigger ekleyerek kolaylıkla kontrol edebilirsiniz.
İki tablodaki veriler birebir tutmuyorsa sadece temel alanları ekleyebilirsiniz.


Örnek triggerlar;


Delete için:  TABLE_A Işlem yapılan tablo, TABLE_B değişiklik yaptırmak istediğimiz tablo;



CREATE OR REPLACE TRIGGER "TRI_TABLE_B_DEL"
AFTER DELETE
ON TABLE_A
FOR EACH ROW
BEGIN
  DELETE FROM TABLE_B@DB where T_NO = :old.T_OKULNO;
END TRI_TABLE_B_DEL;

Insert için;


CREATE OR REPLACE TRIGGER "TRI_TABLE_B_INS"
    AFTER
INSERT ON TABLE_A FOR EACH ROW
BEGIN
  INSERT INTO TABLE_B@DB
    (T_NO,
     T_ADI,
     T_CINSIYET
)

VALUES
    (:NEW.T_OKULNO,
    :NEW.T_ADI,

case when(:NEW.T_CINSIYET = 'B') then 'Belirsiz' else case
     when(:NEW.T_CINSIYET= 'E') then 'Erkek' else case
     when(:NEW.T_CINSIYET= 'K') then 'Kadın' else null end end end,

)
END TRI_TABLE_B_INS;


Update İçin;



CREATE OR REPLACE TRIGGER "TRI_TABLE_B_UPD"
AFTER UPDATE
ON TABLE_A
FOR EACH ROW
BEGIN
  UPDATE ENLIL.TABLE_B@EJDENLIL
     SET T_NO  = :NEW.T_OKULNO,
         T_ADI         = :NEW.T_ADI
 WHERE T_NO = :old.T_OKUL;





Hiç yorum yok:

Yorum Gönder