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!
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:
-
nama_trigger
: Ini adalah nama trigger Anda. Pilih nama yang mendeskripsikan apa yang dilakukannya. -
{BEFORE | AFTER}
: Ini menentukan kapan trigger aktif – sebelum atau setelah peristiwa yang ditentukan. -
{INSERT | UPDATE | DELETE}
: Ini adalah peristiwa yang mengaktifkan trigger. -
nama_tabel
: Tabel yang terkait dengan trigger. -
FOR EACH ROW
: Ini berarti trigger akan aktif untuk setiap baris yang terpengaruh oleh peristiwa. -
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 fungsiUPPER()
. -
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, danNEW
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