ID (Indonesia) Translation:

PL/SQL - Triggers: Panduan Teman Anda untuk Otomatisasi Database

Hai teman-teman masa depan ahli basis data! Hari ini, kita akan meluncur ke dunia magis PL/SQL triggers. Jangan khawatir jika Anda baru saja memulai dalam programming – saya akan menjadi panduan andalan Anda dalam petualangan ini. Pada akhir tutorial ini, Anda akan membuat trigger seperti seorang pro!

PL/SQL - Triggers

Apa Itu Triggers, Sebenarnya?

Imaginasi Anda sebagai seorang perpustakaawan ( ikut teruslah ). Setiap kali buku dipinjam, Anda perlu memperbarui catatan, memeriksa apakah buku itu terlambat, dan mungkin mengirimkan pengingat kepada peminjam. Melakukan ini secara manual untuk setiap buku akan sangat lelah! Itu di mana triggers berperan.

Dalam dunia basis data, triggers seperti kecil-kecil elf yang membantu secara otomatis melakukan aksi saat terjadi peristiwa tertentu. Mereka adalah bagian kode yang "trigger" sebagai tanggapan atas operasi basis data tertentu.

Membuat Triggers: Mari Kita Mulai!

Sekarang, mari kita buat trigger pertama kita. Kita akan mulai dari yang sederhana dan kemudian naik tingkat.

Struktur Dasar Trigger

Ini adalah struktur umum trigger:

CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
[FOR EACH ROW]
[WHEN condition]
DECLARE
-- Declarasi variabel
BEGIN
-- Tubuh trigger
EXCEPTION
-- Penanganan pengecualian
END;
/

Jangan takut! Kita akan membongkar ini secara piece by piece.

Contoh 1: Trigger "Hello, World!" Sederhana

Mari kita buat trigger yang mengatakan "Hello, World!" setiap kali baris baru dimasukkan ke dalam tabel:

CREATE OR REPLACE TRIGGER hello_world_trigger
AFTER INSERT ON employees
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World! Seorang karyawan baru ditambahkan!');
END;
/

Apa yang terjadi disini?

  • CREATE OR REPLACE TRIGGER: Ini memberitahu basis data kita sedang membuat trigger baru (atau mengganti trigger yang sudah ada).
  • AFTER INSERT ON employees: Trigger kita akan dinyalakan setelah baris baru dimasukkan ke dalam tabel 'employees'.
  • BEGIN...END: Ini adalah tempat kita menaruh logika trigger.
  • DBMS_OUTPUT.PUT_LINE: Ini hanya cara menarik untuk mencetak teks.

Contoh 2: Melog Perubahan

Mari kita buat trigger yang lebih berguna yang melog perubahan ke tabel 'employees':

CREATE OR REPLACE TRIGGER log_salary_changes
AFTER UPDATE OF salary ON employees
FOR EACH ROW
BEGIN
INSERT INTO salary_change_log (employee_id, old_salary, new_salary, change_date)
VALUES (:OLD.employee_id, :OLD.salary, :NEW.salary, SYSDATE);
END;
/

Apa yang baru disini?

  • AFTER UPDATE OF salary: Trigger ini akan dinyalakan hanya saat kolom 'salary' diperbarui.
  • FOR EACH ROW: Ini berarti trigger dinyalakan untuk setiap baris yang terkena UPDATE.
  • :OLD dan :NEW: Ini merujuk ke nilai lama dan baru baris yang diperbarui.

Menyemburkan Trigger: Membuat Magis Terjadi

Sekarang kita telah membuat trigger, bagaimana kita membuat mereka dinyalakan? Sederhana! Dengan melakukan operasi basis data yang mereka pantau.

Contoh 3: Menembakkan Trigger

Mari kita lihat trigger kita dalam aksi:

-- Ini akan menembakkan 'hello_world_trigger'
INSERT INTO employees (employee_id, name, salary)
VALUES (1, 'John Doe', 50000);

-- Ini akan menembakkan 'log_salary_changes' trigger
UPDATE employees
SET salary = 55000
WHERE employee_id = 1;

Ketika Anda menjalankan perintah ini, di belakang layar, trigger kita mulai beraksi!

Tipe Trigger: Tabel Referensi Cepat

Ini adalah tabel referensi cepat tentang jenis trigger yang berbeda:

Tipe Trigger Deskripsi Contoh Penggunaan
BEFORE Dinyalakan sebelum aksi pemicu Validasi atau modifikasi data masukan sebelum dimasukkan
AFTER Dinyalakan setelah aksi pemicu Melog perubahan atau memperbarui tabel terkait
INSERT Dinyalakan saat operasi INSERT Secara otomatis generate catatan terkait
UPDATE Dinyalakan saat operasi UPDATE Track perubahan data sepanjang waktu
DELETE Dinyalakan saat operasi DELETE Memelihara integritas referensi
INSTEAD OF Digunakan dengan view untuk menentukan operasi insert, update, atau delete khusus Implementasi pembaruan view yang kompleks

Menutup: Anda Sekarang Pemula Trigger!

Selamat! Anda telah mengambil langkah pertama ke dalam dunia PL/SQL triggers. Kita telah melihat dasar-dasar membuat trigger, melihat mereka dalam aksi, dan bahkan melihat jenis trigger yang berbeda.

Ingat, trigger adalah alat yang kuat, tapi dengan kekuatan yang besar datang tanggung jawab yang besar. Gunakan mereka bijaksana, dan mereka akan membuat kerja basis data Anda lebih cerdas, bukan lebih keras.

Teruslatih, tetap curioso, dan sebelum Anda sadari, Anda akan menjadi maestro trigger! Selamat coding, masa depan ahli basis data!

Credits: Image by storyset