0% menganggap dokumen ini bermanfaat (0 suara)
436 tayangan5 halaman

Mysql Trigger Dengan Phpmyadmin

1. Trigger dapat digunakan untuk menyimpan data secara otomatis ke tabel lain setelah insert, update, atau sebelum delete pada tabel utama 2. Trigger dibuat melalui menu More dan Trigger di PHPMyAdmin 3. Isi parameter trigger seperti nama, tabel, waktu (sebelum/sesudah), dan event (insert, update, delete) 4. Script trigger ditulis pada field Definition

Diunggah oleh

ArdiSaputra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
436 tayangan5 halaman

Mysql Trigger Dengan Phpmyadmin

1. Trigger dapat digunakan untuk menyimpan data secara otomatis ke tabel lain setelah insert, update, atau sebelum delete pada tabel utama 2. Trigger dibuat melalui menu More dan Trigger di PHPMyAdmin 3. Isi parameter trigger seperti nama, tabel, waktu (sebelum/sesudah), dan event (insert, update, delete) 4. Script trigger ditulis pada field Definition

Diunggah oleh

ArdiSaputra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 5

MySQL Trigger dengan PHPMYADMIN

ariesmaulana programming database, mysql, phpmyadmin, trigger, tutorial 1


Comment
Gan saya ingin saat tabel A di insert itu juga melakukan insert di tabel B gimana yah
caranya ?
Seringkali saya membaca pertanyaan seperti itu pada beberapa grup pemograman di
facebook. Ada beberapa solusi salah satunya dengan melakukan double query alias
menduplikat query yang sama dan merubah tujuan tabelnya misal

1 function insert(){
2 //insert ke table A
3 insert into table a (field_1,field_2) values ('value 1','value 2');
4 //insert juga ke table B
5 insert into table B (field_1,field_2) values ('value 1','value 2');
6}

Salah ? tidak juga karena menurut pepatah kan banyak jalan menuju roma,dan banyak
jalan memecahkan masalah, betul ? Tapi ada kata pepatah lain kalau bisa diselesaikan
oleh database kenapa harus sampai ngoding di script ?.
Untuk versi mysql 5 keatas sudah ada namanya trigger, sesuai namanya pemicu maka
dia adalah sebuah event otomatis tergantung pemicunya bisa setelahnya (after) atau
sebelumnya (before).
Udahlah langsung aja supaya gak kebanyakan cerita. Sebelumnya persiapkan 2 tabel,
tabel mahasiswa (tetep mahasiswa andalan setiap demo) dengan struktur seperti
berikut
1. id (int 11) primary key auto increment
2. nama (varchar 25)
3. kelas (varchar 25)
Dan tabel mahasiswa_history yang hampir mirip strukturnya seperti berikut

1. id (int 11) primary key auto increment


2. id_mahasiswa (int 11)
3. kelas (varchar 25)
4. note (text)
Lalu skenarionya seperti berikut
1. Setiap setelah insert data mahasiswa akan disimpan juga secara otomatis di
tabel mahasiswa_history
2. Setiap setelah update data mahasiswa akan disimpan juga secara otomatis di
tabel mahasiswa_history
3. Setiap sebelum delete data mahasiswa akan disimpan juga secara otomatis di
tabel mahasiswa_history
Sudah jelas kan ? nah sekarang membuat trigger di phpmyadmin itu mudah,sangat
sedikit scriptnya karena sudah didukung dengan GUI yang cukup memudahkan.
Pertama pilih menu more dan pilih trigger.

Setelah memilih menu Trigger, ada link add trigger lalu kita buat trigger yang pertama
setelah insert alias after insert. Pilih add trigger tersebut maka akan muncul dialog box
dan isikan sesuai gambar.

penjelasan :
1. trigger name : ini diisi bebas sesuaikan dengan nama yang di inginkan
2. Table : pilih trigger akan dijalankan saat ada event di tabel mana, karena ini
tabel mahasiswa maka plih tabelnya tabel mahasiswa
3. Time : kapan akan dilakukan AFTER atau BEFORE karena setelah dalam
kasus ini pilih lah AFTER.
4. Event : ini pemicu utamanya, script akan dijalankan setelah apa, karena setelah
insert maka pilihlah eventnya INSERT.
5. Definition : ini script yang dijalankan saat trigger dijalankan
Untuk field Definition bagian pertama isikan script berikut

1
2
3
4

INSERT INTO `tuts`.`mahasiswa_history`


(`id_mahasiswa`, `nama`, `kelas`, `note`)
VALUES
(new.id, new.nama, new.kelas, concat("Baru Saja ditambahkan pada " , current_date()))

lalu pilih Go.


Lalu trigger yang kedua lakukan hal yang sama namun dengan parameter field seperti
berikut

dan pada field definition isikan script

berikut

1 INSERT INTO `tuts`.`mahasiswa_history`


2 (`id_mahasiswa`, `nama`, `kelas`, `note`)
3 VALUES (new.id, new.nama, new.kelas, concat("Baru Saja diubah pada " , current_date()))

Lanjut yang ketiga, karena ini eventya berbeda maka pastikan pilih time nya before
dan event nya delete.
dengan isi dari field definiton seperti

berikut

1 INSERT INTO `tuts`.`mahasiswa_history`


2 (`id_mahasiswa`, `nama`, `kelas`, `note`)
3 VALUES (old.id, old.nama, old.kelas, concat("Baru Saja dihapus pada " , current_date()))

Pembuatan trigger selesai sekarang pengetesan, pengetesanya cukup mudah cukup


lakukan insert,update dan delete kepada tabel mahasiswa dan setiap melakukan event
tersebut
cek
tabel
mahasiswa_history,jika
berhasil
seharusnya
tabel
mahasiswa_history akan terisi dengan sendirinya.

Catatan Tambahan :
1.Jika diperhatikan terdapat old.field dan new.field, OLD itu akan mengambil
referensi data sebelum ada perubahan (insert,update,delete) sedangkan NEW
mengambil refensi setelah ada perubahan (insert,update,delete).
2.Script concat(Sudah ditambahkan pada , current_date()) , bukanlah hal wajib saya
hanya ingin input data dengan embel embel tanggal dinamis. script concat bisa diisi
apa saja mau hanya current_date() atau puntext biasa tergantung field apa yang akan
dipakai untuk menampunya kebetulan saja ini field note nya berupa text

Anda mungkin juga menyukai