Junior
İlişkisel veritabanında tetikleyiciler nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir tetikleyici, veritabanı tablosunda veya görünümünde belirli bir olaya yanıt olarak otomatik olarak çalışan özel bir saklı prosedür türüdür.
Tetikleyiciyi tetikleyen temel olaylar:
INSERT: Yeni satır ekleme.UPDATE: Mevcut bir satırı değiştirme.DELETE: Satır silme.
Tetikleyiciler, olayın gerçekleşmesinden önce (BEFORE) veya sonra (AFTER) tetiklenebilir.
Tetikleyicilerin kullanımı örnekleri:
- Alanların otomatik güncellenmesi (örneğin, son değişiklik tarihi).
- Veri bütünlüğünün kontrolü.
- Değişikliklerin kaydı (kayıt tutma).
- Bağlantılı verilerin kaskad güncellemesi veya silinmesi.
-- AFTER INSERT tetikleyicisi oluşturma örneği (kurgusal sözdizimi)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Tetikleyici tarafından çağrılan fonksiyon örneği
CREATE FUNCTION log_user_insert() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit_logs (table_name, operation, timestamp, new_data)
VALUES ('users', 'INSERT', NOW(), row_to_json(NEW));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Avantajlar:
- İş mantığının merkezileştirilmesi.
- Rutin görevlerin otomasyonu.
- Veri bütünlüğünün artırılması.
Dezavantajlar:
- Hata ayıklamanın zor olması.
- Performans üzerinde potansiyel etkisi.
- Uygulama mantığının karmaşıklaşması, çünkü bir kısmı veritabanı seviyesine taşınmıştır.