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!
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:
-
trigger_name
: 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. -
table_name
: Tabel yang terkait dengan trigger. -
FOR EACH ROW
: Ini berarti trigger akan aktif untuk setiap baris yang terpengaruh oleh peristiwa. -
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 fungsiUPPER()
. -
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, danNEW
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