Minggu, 26 Desember 2010

Trigger MySQL

Untuk membuat trigger di MySQL and harus mengaktifkan INODB pada MySQL. Setelah aktif barulah kita bisa menggunkan fasilitas trigger pada MySQL. Ok langsung pada tujuan mari kita mulai proyek kita, pertama – tama kita akan membuat 2 buah tabel untuk percobaan kita

Code :

CREATE TABLE `tbl_pertama` (
`kode` char(2) NOT NULL,
`nama` varchar(20) default NULL,
PRIMARY KEY (`kode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `tbl_kedua` (
`kode_kedua` char(2) NOT NULL,
`nama_kedua` varchar(20) default NULL,
PRIMARY KEY (`kode_kedua`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Trigger berada pada sebuah table tertentu jadi trigger akan bekerja jika sebuah table mengalami seuatu kejadian, jadi trigger akan bekerja secara otomatis jika sebuah table mengalami proses.

Trigger dapat bekerja BEFORE atau AFTER sebuah tabel mengalami tiga kejadian [Insert, Edit, delete]. Saya harap semua telah mengerti sampai di sini. Trigger dapat berjalan pada saat table mengalami tiga kejadian tersebut [Insert, Edit, delete]. Trigger bukannya bisa melakukan dua proses malah bisa lebih dari satu atau dua proses.

Mari kita buat trigger pada tabel percobaan kita. Pada contoh kasus ini jika kita melakukan pengisian pada tabel pertama makan otomatis tabel kedua akan terisi, begitu juga saat kita melakakukan update dan delete.

Code :
Untuk proses insert :

CREATE TRIGGER `tr_insert` AFTER INSERT ON `tbl_pertama`
FOR EACH ROW
BEGIN
INSERT INTO tbl_kedua values(new.kode, new.nama);
END;

Untuk proses update :

CREATE TRIGGER `tr_update` AFTER UPDATE ON `tbl_pertama`
FOR EACH ROW
BEGIN
update tbl_kedua set kode_kedua=new.kode, nama_kedua=new.nama
where kode_kedua=OLD.kode;
END;

Untuk proses delete :

CREATE TRIGGER `tr_delete` AFTER DELETE ON `tbl_pertama`
FOR EACH ROW
BEGIN
delete from tbl_kedua where kode_kedua=OLD.kode;
END;

Sampai di sini selesai sudah trigger yang kita buat silakan coba dan explorasi.
Selengkapnya.........

Tidak ada komentar:

Posting Komentar