Bu Kategoriye İçerik Girin veya Soru Sorun

Kategori İçi Sözlük

Bu Sayfayı Paylaş:

FOR EACH ROW

Tanım: Oracle'da bir trigger'ın row level olduğunu belirten ifade. Aksi takdirde table level olmaktadır.

Trigger Olay Tipleri

Oracle'da trigger aşağıdaki olay tipleri için tetiklenebilir:
  • Veri Güncelleme - Data Manipulation - DML
    • Insert
    • Update
    • Delete
  • Database Tanım Güncelleme - Database Definiton - DDL
    • Create
    • Alter
    • Drop
  • Database Operasyon
    • Servererror
    • Logon
    • Logoff
    • Startup
    • Shutdown

Trigger Genel Yapısı

Trigger'in en basit şekilde yapısı aşağıdaki gibi gösterilebilir
CREATE OR REPLACE TRIGGER trigger_adi
-- BEFORE | AFTER | INSTEAD OF + INSERT | UPDATE | DELETE şeklinde hangi sırada (önce, sonra) ve hangi işlem (delete, update, insert) için çalışacağı verilir
ON table_adi  (veya OF sutun_adi şeklinde bir sütun adı)
-- FOR EACH ROW eğer Row Level trigger ise bu ifade eklenir
WHEN (kosul)
DECLARE
   --deklerasyon bölümü
BEGIN 
   --çalışan bölüm
EXCEPTION
   --exception bölümü
END;

Bir Tabloda Güncelleme Yapıldığında Başka Bir Tabloya Kayıt Atan Trigger Örneği

Aşağıdaki trigger, empoyees tablosunda salary değeri değiştiği zaman, değiştiği miktar değerini salary_history tablosuna insert etmektedir:
CREATE OR REPLACE TRIGGER SALARY_HISTORY_UPDATE
AFTER UPDATE ON EMPLOYEES
FOR EACH ROW
WHEN (NEW.salary <> OLD.salary)
DECLARE 
e_raise EMPLOYEES.SALARY%TYPE;
BEGIN
e_raise := :NEW.salary  - :OLD.salary;
insert into salary_history(EMPLOYEE_ID,REAISE,RAISE_DATE) values(:NEW.employee_id,e_raise,sysdate);
END;
/
SALARY_HISTORY_UPDATE adında bir trigger yaratılmıştır. AFTER UPDATE ON EMPLOYEES ile EMPLOYEES tablosunda herhangi bir update işlemi yapıldıktan sonra bu trigger'ın çağrılacağı belirtilmiş olur. FOR EACH ROW ise row level bir trigger olduğunu belirtilir. WHEN (NEW.salary <> OLD.salary) ile eski değer ve yeni değer karşılaştırılır ve eğer salary değeri değişti ise kodun çalışması sağlanır. e_raise := :NEW.salary - :OLD.salary; ile artış miktarı alınır ve altındaki insert ile tabloya değerler insert edilir



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir