Cara Buat Trigger di MySQL

Cara Buat Trigger di MySQL

Cara Buat Trigger di MySQL

Trigger adalah sebuah operasi otomatis yang dilakukan oleh database dengan dipicu sebuah tindakan dari transaksi lainnya. Untuk gambaran kasusnya adalah saat dilakukan transaksi penjualan maka saat penjualan berhasil maka stok akan berkurang otomatis dilakukan oleh database itu sendiri setelah insert data ke table penjualan berhasil

Rangkuman : dalam tutorial ini, Anda akan belajar bagaimana cara menggunakan CREATE TRIGGER pernyataan MySQL untuk membuat pemicu dalam database .

Pengantar CREATE TRIGGER pernyataan MySQL

The CREATE TRIGGER pernyataan menciptakan pemicu baru. Berikut adalah sintaks dasar dari CREATE TRIGGERpernyataan tersebut:

CREATE TRIGGER trigger_name

{BEFORE | AFTER} {INSERT | UPDATE| DELETE }

ON table_name FOR EACH ROW

trigger_body;

Bahasa kode: SQL (Structured Query Language) ( sql )

Dalam sintaks ini:

  • Pertama, tentukan nama pemicu yang ingin Anda buat setelah CREATE TRIGGERkata kunci. Perhatikan bahwa nama pemicu harus unik dalam database.
  • Selanjutnya, tentukan waktu tindakan pemicu yang dapat berupa salah satu BEFOREatau AFTERyang menunjukkan bahwa pemicu dipanggil sebelum atau setelah setiap baris diubah.
  • Kemudian, tentukan operasi yang mengaktifkan pemicu, yang dapat INSERT, UPDATEatau DELETE.
  • Setelah itu, tentukan nama tabel tempat pemicunya berada setelah ONkata kunci.
  • Terakhir, tentukan pernyataan yang akan dieksekusi saat trigger aktif. Jika Anda ingin menjalankan beberapa pernyataan, Anda menggunakan BEGIN ENDpernyataan gabungan.

Badan trigger dapat mengakses nilai kolom yang terpengaruh oleh pernyataan DML.

Untuk membedakan antara nilai kolom BEFOREdan AFTERDML telah diaktifkan, Anda menggunakan NEWdan OLDpengubah.

Misalnya, jika Anda memperbarui deskripsi kolom, di bagian trigger, Anda dapat mengakses nilai deskripsi sebelum pembaruan OLD.descriptiondan nilai baru NEW.description.

Tabel berikut menggambarkan ketersediaan OLDdan NEWpengubah:

Acara Trigger OLD NEW
INSERT Tidak Iya
UPDATE Iya Iya
DELETE Iya Tidak

Contoh trigger MySQL

Mari mulai membuat trigger di MySQL untuk mencatat perubahan employeestabel.

https://sp.mysqltutorial.org/wp-content/uploads/2019/08/employees.png

Pertama, buat tabel baru dengan nama employees_audituntuk menyimpan perubahan pada employeestabel:

Baca Juga  Belajar Microsoft Excel: Cara Menjumlah Jumlah Aksara Dan Kata

CREATE TABLE employees_audit (

id INT AUTO_INCREMENT PRIMARY KEY,

employeeNumber INT NOT NULL,

lastname VARCHAR(50) NOT NULL,

changedat DATETIME DEFAULT NULL,

action VARCHAR(50) DEFAULT NULL

);

Selanjutnya, buat BEFORE UPDATEtrigger yang dipanggil sebelum perubahan dilakukan pada employees tabel.

CREATE TRIGGER before_employee_update

BEFORE UPDATE ON employees

FOR EACH ROW

INSERT INTO employees_audit

SET action = ‘update’,

employeeNumber = OLD.employeeNumber,

lastname = OLD.lastname,

changedat = NOW();

Bahasa kode: SQL (Structured Query Language) ( sql )

Di dalam tubuh trigger, kami menggunakan OLDkata kunci untuk mengakses nilai kolom employeeNumber dan lastnamebaris yang terpengaruh oleh trigger.

Kemudian, perlihatkan semua trigger dalam database saat ini dengan menggunakan SHOW TRIGGERSpernyataan:

SHOW TRIGGERS;

Bahasa kode: SQL (Structured Query Language) ( sql )

MySQL CREATE TRIGGER - tampilkan pemicu

Selain itu, jika Anda melihat skema menggunakan MySQL Workbench di bawah karyawan> trigger , Anda akan melihat  before_employee_updatetrigger seperti yang ditunjukkan pada gambar di bawah:

MySQL membuat contoh pemicu

Setelah itu, perbarui baris dalam employees tabel:

UPDATE employees

SET

lastName = ‘Phan’

WHERE

employeeNumber = 1056;

Terakhir, buat kueri employees_audittabel untuk memeriksa apakah trigger diaktifkan oleh UPDATE pernyataan:

SELECT * FROM employees_audit;

Berikut ini adalah hasil dari query:

Contoh MySQL CREATE TRIGGER

Seperti yang Anda lihat dengan jelas dari keluaran, trigger secara otomatis dipanggil dan disisipkan baris baru ke dalam employees_audittabel.

Dalam tutorial ini, Anda telah mempelajari cara menggunakan CREATE TRIGGERpernyataan MySQL untuk membuat trigger baru di database.

 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Need Help? Chat with us