Belajar MySQL : Membuat Auto Generator PIN menggunakan Trigger
Sebelumnya kita telah mempelajari tentang penggunaan SQL Multitable dan Subquery. Kali ini saya ingin melanjutkan tentang Trigger.
Script dasar dari trigger adalah :
Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE. INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger. ada beberapa event yang bisa kita gunakan untuk mengekseskusi triger yaitu :
- BEFORE INSERT – dijalankan ketika data di masukan ke dalam table.
- AFTER INSERT – dijalankan setelah data masuk ke dalam table.
- BEFORE UPDATE – dijalankan sebelum proses update data.
- AFTER UPDATE – dijalankan setelah proses proses update data.
- BEFORE DELETE – dijalankan sebelum proses delete data.
- AFTER DELETE – dijalankan setelah proses delete data.
Script dasar dari trigger adalah :
CREATE TRIGGER nama_trigger after kejadian(i/u/d) ON nama_tabel
FOR EACH ROW BEGIN
INSERT INTO nama_tabel SET
nama_field = kejadian(new/old).nama_field
, nama_field=kejadian(new/old).nama_field
ON DUPLICATE KEY UPDATE nama_field=nama_field+kejadian(new/old).nama_field;
END$$
Membuat Auto Generator PIN Menggunakan Trigger
1. Membuat database db_user
2. Membuat tabel nama_user dengan struktur sebagai berikut :
3. Jika sudah, masuk ke tab trigger dan pilih Add Trigger
Untuk Query nya :
CREATE TRIGGER `pin_generator` BEFORE INSERT ON `nama_user` FOR
EACH ROW BEGIN DECLARE newpin varchar(255); SELECT CURTIME() +0
INTO newpin; SET NEW.pin = newpin; END4.
Setelah membuat trigger, kita coba test dengan memasukan 1 user (insert). Untuk kolom pin tidak
perlu diisi karena otomatis meng-generate dari jam+menit sekarang. Jika sudah klik GO
perlu diisi karena otomatis meng-generate dari jam+menit sekarang. Jika sudah klik GO
Untuk Query nya :
INSERT INTO `nama_user` (`pin`, `nama`, `nim`) VALUES ('', 'Danang
Avan Maulana', '5180411091');
5. Dan hasilnya, kolom PIN pasti ter-generate sendiri. Dan Jam menit akan ter-generate sendiri.
INSERT INTO `nama_user` (`pin`, `nama`, `nim`) VALUES ('', 'Danang
Avan Maulana', '5180411091');
5. Dan hasilnya, kolom PIN pasti ter-generate sendiri. Dan Jam menit akan ter-generate sendiri.
Sebenarnya, script yang ada pada trigger tadi mengambil dari waktu sekarang (HHMMSS) dalam
bentuk Integer, tetapi karena kita hanya membatasi 4 karakter Varchar, maka yang masuk adalah 4
digit pertama, yaitu HHMM
bentuk Integer, tetapi karena kita hanya membatasi 4 karakter Varchar, maka yang masuk adalah 4
digit pertama, yaitu HHMM
Comments
Post a Comment