MySQL - CREATE TRIGGER: Panduan untuk Pemula

Hai teman-teman yang bersemangat dalam dunia basis data! Hari ini, kita akan masuk ke dalam dunia menarik MySQL triggers. Jangan khawatir jika Anda baru dalam programming; saya akan menjadi panduan ramah untukmu 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 menggonggong saat seseorang menggoyangkan bel tingkap. 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 diperankan secara otomatis saat suatu peristiwa khusus terjadi untuk tabel itu.

Membuat Trigger dalam MySQL

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

Sintaks Dasar

Berikut adalah struktur dasar dari pernyataan CREATE TRIGGER:

CREATE TRIGGER nama_trigger
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON nama_tabel
FOR EACH ROW
badan_trigger;

mari kitauraikan ini:

  1. nama_trigger: 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. nama_tabel: Tabel yang terkait dengan trigger.
  5. FOR EACH ROW: Ini berarti trigger akan aktif untuk setiap baris yang terpengaruh oleh peristiwa.
  6. badan_trigger: Pernyataan SQL yang dieksekusi saat trigger aktif.

Contoh 1: Trigger BEFORE INSERT

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

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

Dalam contoh ini:

  • Trigger dinamai capitalize_name.
  • Itu aktif sebelum operasi INSERT pada tabel karyawan.
  • Untuk setiap baris baru, itu mengkapitalkan kolom nama menggunakan fungsi UPPER().
  • NEW merujuk ke baris baru yang akan 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 karyawan
FOR EACH ROW
BEGIN
IF OLD.gaji <> NEW.gaji THEN
INSERT INTO log_gaji (id_karyawan, gaji_lama, gaji_baru, tanggal_perubahan)
VALUES (NEW.id, OLD.gaji, NEW.gaji, NOW());
END IF;
END;

Ini adalah apa yang terjadi:

  • Trigger dinamai log_salary_changes.
  • Itu aktif setelah operasi UPDATE pada tabel karyawan.
  • Itu memeriksa apakah gaji telah berubah (OLD.gaji <> NEW.gaji).
  • Jika ada perubahan, itu memasukkan rekord ke dalam tabel log_gaji.
  • OLD merujuk ke baris sebelum update, dan NEW ke baris setelah update.

Membuat Trigger Menggunakan Program Klien

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

Langkah 1: Terhubung ke MySQL

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

mysql -u username -p

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

Langkah 2: Pilih Basis Data

Setelah terhubung, pilih basis data yang Anda inginkan:

USE nama basis_data Anda;

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 karyawan
FOR EACH ROW
BEGIN
IF OLD.gaji <> NEW.gaji THEN
INSERT INTO log_gaji (id_karyawan, gaji_lama, gaji_baru, tanggal_perubahan)
VALUES (NEW.id, OLD.gaji, NEW.gaji, NOW());
END IF;
END//

DELIMITER ;

Catatan penggunaan DELIMITER // dan DELIMITER ;. Ini karena badan trigger mengandung tanda titik koma, jadi kita perlu mengubah penanda terpisah secara sementara.

Langkah 4: Verifikasi Trigger

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

SHOW TRIGGERS;

Ini akan menampilkan semua trigger dalam basis data saat ini.

Metode Trigger

Berikut adalah tabel metode trigger paling umum dalam 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 bisa menjadi alat yang kuat jika digunakan dengan benar. Trigger dapat sangat meningkatkan operasi basis data Anda, tetapi penggunaan yang berlebihan bisa menyebabkan kompleksitas dan masalah kinerja!

Kesimpulan

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

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

Credits: Image by storyset