MySQL - CREATE TRIGGER: Panduan Pemula

Hai daar, para penggemar basis data yang bersemangat! Hari ini, kita akan melihat dunia yang menarik dari trigger MySQL. Jangan khawatir jika Anda baru dalam programming; saya akan menjadi panduan ramah bagi Anda dalam perjalanan ini. Pada akhir panduan ini, Anda akan dapat membuat trigger seperti seorang ahli!

MySQL - Create Trigger

Apa Itu Trigger?

Sebelum kita masuk ke dalam membuat trigger, mari kita mengerti apa itu trigger. Bayangkan Anda memiliki anjing setia yang selalu berbisik saat seseorang menggoyangkan belangan. Dalam dunia basis data, trigger seperti anjing itu - itu adalah tanggapan otomatis terhadap suatu peristiwa khusus dalam basis data Anda.

Definisi

Trigger adalah objek basis data yang dinamai dan terkait dengan tabel, yang diaktifkan secara otomatis saat peristiwa tertentu terjadi untuk tabel itu.

Membuat Trigger di MySQL

Sekarang kita tahu apa itu trigger, mari kita belajar bagaimana membuatnya di MySQL. Itu seperti belajar sihir baru, tapi bukan dengan mengayunkan tongkat, kita akan mengetik perintah!

Sintaks Dasar

Berikut adalah struktur dasar dari pernyataan CREATE TRIGGER:

CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
trigger_body;

mari kitauraikan ini:

  1. trigger_name: Ini adalah nama trigger Anda. Pilih nama yang mendeskripsikan apa yang dilakukannya.
  2. {BEFORE | AFTER}: Ini menentukan kapan trigger aktif - sebelum atau setelah peristiwa yang ditentukan.
  3. {INSERT | UPDATE | DELETE}: Ini adalah peristiwa yang mengaktifkan trigger.
  4. table_name: Tabel yang terkait dengan trigger.
  5. FOR EACH ROW: Ini berarti trigger akan aktif untuk setiap baris yang terpengaruh oleh peristiwa.
  6. trigger_body: Perintah SQL yang dieksekusi saat trigger aktif.

Contoh 1: Trigger BEFORE INSERT

Mari kita buat trigger yang memastikan semua nama karyawan ditulis besar sebelum dimasukkan ke tabel.

CREATE TRIGGER capitalize_name
BEFORE INSERT ON employees
FOR EACH ROW
SET NEW.name = UPPER(NEW.name);

Dalam contoh ini:

  • Trigger dinamai capitalize_name.
  • Itu aktif SEBELUM operasi INSERT pada tabel employees.
  • Untuk setiap baris baru, itu mengkapitalisasi kolom name menggunakan fungsi UPPER().
  • NEW merujuk ke baris baru yang dimasukkan.

Contoh 2: Trigger AFTER UPDATE

Sekarang, mari kita buat trigger yang mencatat perubahan gaji di tabel lain.

CREATE TRIGGER log_salary_changes
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
IF OLD.salary <> NEW.salary THEN
INSERT INTO salary_log (employee_id, old_salary, new_salary, change_date)
VALUES (NEW.id, OLD.salary, NEW.salary, NOW());
END IF;
END;

Ini adalah apa yang terjadi:

  • Trigger dinamai log_salary_changes.
  • Itu aktif SETELAH operasi UPDATE pada tabel employees.
  • Itu memeriksa apakah gaji telah berubah (OLD.salary <> NEW.salary).
  • Jika ada perubahan, itu memasukkan catatan ke tabel salary_log.
  • OLD merujuk ke baris sebelum update, dan NEW ke baris setelah update.

Membuat Trigger Menggunakan Program Klien

Meskipun kita dapat membuat trigger langsung di MySQL, kadang-kadang lebih mudah menggunakan program klien. Mari kita lihat bagaimana kita dapat melakukan ini menggunakan klien perintah MySQL.

Langkah 1: Terhubung ke MySQL

Pertama, buka terminal atau command prompt dan terhubung ke MySQL:

mysql -u username -p

Ganti username dengan username MySQL Anda. Anda akan diminta untuk memasukkan kata sandi.

Langkah 2: Pilih Basis Data

Setelah terhubung, pilih basis data yang Anda inginkan:

USE your_database_name;

Langkah 3: Buat Trigger

Sekarang, Anda dapat membuat trigger Anda. mari kita gunakan contoh catatan gaji:

DELIMITER //

CREATE TRIGGER log_salary_changes
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
IF OLD.salary <> NEW.salary THEN
INSERT INTO salary_log (employee_id, old_salary, new_salary, change_date)
VALUES (NEW.id, OLD.salary, NEW.salary, NOW());
END IF;
END//

DELIMITER ;

Catatan penggunaan DELIMITER // dan DELIMITER ;. Ini karena tubuh trigger mengandung tanda titik koma, jadi kita perlu mengubah pengasingan secara sewaktu-waktu.

Langkah 4: Verifikasi Trigger

Untuk memastikan trigger Anda telah dibuat dengan sukses, Anda dapat menggunakan:

SHOW TRIGGERS;

Ini akan menampilkan semua trigger di basis data saat ini.

Metode Trigger

Berikut adalah tabel metode trigger paling umum di MySQL:

Metode Deskripsi
BEFORE INSERT Aktif sebelum baris baru dimasukkan
AFTER INSERT Aktif setelah baris baru dimasukkan
BEFORE UPDATE Aktif sebelum baris yang ada diperbarui
AFTER UPDATE Aktif setelah baris yang ada diperbarui
BEFORE DELETE Aktif sebelum baris yang ada dihapus
AFTER DELETE Aktif setelah baris yang ada dihapus

Ingat, setiap metode ini dapat menjadi alat yang kuat jika digunakan dengan benar. Trigger dapat meningkatkan operasi basis data Anda, tetapi penggunaan yang berlebihan dapat menyebabkan kompleksitas dan masalah performa.

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dalam dunia trigger MySQL. Kita telah menelusuri apa itu trigger, bagaimana membuatnya, dan bahkan bagaimana menggunakannya dengan program klien. Ingat, seperti alat kuat lainnya, trigger harus digunakan bijaksana. Mereka dapat meningkatkan operasi basis data Anda, tetapi penggunaan yang berlebihan dapat menyebabkan kompleksitas dan masalah performa.

Sekarang, teruslatih dan eksperimen dengan trigger. Tak lama lagi, Anda akan membuat sihir basis data yang akan membuat Merlin iri! Semangat coding, dan semoga permintaan Anda selalu mengembalikan hasil yang Anda harapkan!

Credits: Image by storyset