Lewati ke konten utama

Triggers di PostgreSQL

Apa itu Trigger?

Trigger adalah mekanisme dalam PostgreSQL yang memungkinkan eksekusi otomatis suatu perintah SQL sebagai respons terhadap perubahan dalam tabel. Trigger biasanya digunakan untuk menjaga integritas data, mencatat perubahan, atau mengimplementasikan aturan bisnis tertentu.

Jenis-Jenis Trigger

  1. BEFORE – Dieksekusi sebelum operasi INSERT, UPDATE, atau DELETE terjadi.
  2. AFTER – Dieksekusi setelah operasi INSERT, UPDATE, atau DELETE selesai.
  3. INSTEAD OF – Digunakan untuk mengatasi operasi dalam tampilan (VIEW).

Cara Membuat Trigger

Trigger dibuat dengan menggunakan perintah CREATE TRIGGER yang dikombinasikan dengan fungsi trigger (CREATE FUNCTION).

Contoh Implementasi

Berikut adalah contoh pembuatan trigger untuk mencatat perubahan data dalam tabel pengguna:

-- Buat fungsi trigger
CREATE OR REPLACE FUNCTION log_perubahan_pengguna()
RETURNS TRIGGER AS $$
BEGIN
INSERT INTO log_pengguna(user_id, aksi, waktu)
VALUES (OLD.id, 'UPDATE', NOW());
RETURN NEW;
END;
$$ LANGUAGE plpgsql;

-- Buat trigger
CREATE TRIGGER trigger_log_pengguna
AFTER UPDATE ON pengguna
FOR EACH ROW
EXECUTE FUNCTION log_perubahan_pengguna();

Menghapus Trigger

Jika Anda ingin menghapus trigger, gunakan perintah berikut:

DROP TRIGGER trigger_log_pengguna ON pengguna;

Kesimpulan

Trigger adalah fitur yang sangat berguna dalam PostgreSQL untuk menangani berbagai skenario otomatisasi database. Namun, penggunaannya harus direncanakan dengan baik untuk menghindari overhead kinerja yang tidak diinginkan.