Trigger adalah suatu prosedur yang otomatis akan dijalankan apabila “pemicu” dari trigger itu dipanggil.
sebagai contoh: penghapusan satu tabel akan memicu suatu trigger untuk menghapus pada tabel yang lain yang telah ditunjuk terlebih dahulu. dibawah ini saya berikan satu contoh penggunaan trigger pada database MySQL.
Sebagai contoh kita siapkan terlebih dahulu sebuah database dan tabel yang akan diuji coba seperti dibawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | create database mytrigger; create table coba ( kode varchar(5) not null,nama varchar(35) not null, primary key (kode)) create table coba2 ( kode varchar(5) not null,nama varchar(35) not null, primary key (kode)) create table tran ( kode varchar(5) not null, kodetran varchar(5),jumlah double, primary key nkode (kode,kodetran)) |
Kemudian buatlah sebuah trigger dengan kode seperti dibawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | delimiter $$ create trigger auto_insert_coba2 before insert on coba for each row begin insert into coba2 (kode,nama) values (NEW.kode,NEW.nama); end$$ create trigger auto_update_coba2 before update on coba for each row begin update coba2 set nama=NEW.nama where kode=NEW.kode; end$$ create trigger auto_delete_coba2 before delete on coba for each row begin delete from coba2 where kode=OLD.kode; delete from tran where kode=OLD.kode; end$$ |
pada trigger di atas setiap kali perubahan dilakukan terhadap tabel COBA maka secara otomatis
tabel COBA2 akan dipengaruhi / terpengaruh.
Pembuatan trigger ini dapat digunakan untuk berbagai keperluan, selamat mencoba…..!
Jangan lupa untuk memberikan komentar anda. terima kasih.
Popularity: 10% [?]




wuaduoh mas…ndak iso iku…kok gak bisa yaaa waktu create trigger auto_insert_coba2, keluarnya begini nih :
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1
ak pakenya mysql 5.0 loh…bug yah…kalo
saya udah coba lagi ok tuh perintahnya…
hmmmm kalau pembuatan trigger tersebut langsung pada kotak SQL maka perintah
delimiter $$
nggak perlu diketikkan tetapi langsung ketikkkan $$ pada kotak input
lihat gambarnya disini:
http://farm5.static.flickr.com/4015/4295472060_0eaf0b2499_o.jpg
anto2k´s last blog ..KEBOCORAN DOKUMEN PENTAGON
selamat mencoba ya… ehm kalau diberi cendol
kagak keberatan nich….
1. pada baris satu, coba ubah menjadi:
create database if not exsists mytrigger;
2. setelah create table (….) akhiri dengan ‘;’
windu purnomo´s last blog ..Praktikum Algoritma dan Pemrograman
that’s good solution
Biar lebih afdol, ikutan nimbrung bahas mengenai trigger nich. http://bit.ly/TriggerMySQL
achmatim´s last blog ..Mengenal Trigger di MySQL
MATUR SUWUN MAS ANTOK.. tolong add ym saya
utrablora fb : fb_putra@yahoo.co.id
Semaleman saya cari triger, habis sbuh saya baru ketemu dengan web njenengan.. thenqu.. silahkan mampir di blog saya
budi setyawan´s last blog ..PHP PAGINATION MySQL
kalo implementasinya pada program gimana mas? oh ya saya pakai delphi. tanks
ea….. kak mksih…..
makasih mas,,
saya punya kasus mini market mas,
ni table barang
CREATE TABLE `barang` (
`kode_barang` varchar(10) collate latin1_general_ci NOT NULL,
`kode_barcode` varchar(35) collate latin1_general_ci default NULL,
`jenis_barang` varchar(35) collate latin1_general_ci NOT NULL,
`nama_barang` varchar(50) collate latin1_general_ci NOT NULL,
`harga_beli` int(15) default NULL,
`harga_jual` int(15) NOT NULL,
`stock` int(15) NOT NULL,
PRIMARY KEY (`kode_barang`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
INSERT INTO `barang` (`kode_barang`, `kode_barcode`, `jenis_barang`, `nama_barang`, `harga_beli`, `harga_jual`, `stock`) VALUES
(’1′, ’123456789′, ‘permen’, ‘Nano’, 10000, 15000, 100);
ni table rincibelanja
CREATE TABLE `penjualanrinciminimarket` (
`no_nota` varchar(10) collate latin1_general_ci NOT NULL,
`kode_barang` varchar(10) collate latin1_general_ci NOT NULL,
`kode_barcode` varchar(35) collate latin1_general_ci NOT NULL,
`jenis_barang` varchar(35) collate latin1_general_ci NOT NULL,
`harga_jual` double NOT NULL,
`jumlah` int(10) NOT NULL,
`sub_total` double NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
nah yang ingin saya tanyakan gimana sintax triggernya,
jika ada kode barang dan jumlah yang masuk pada tabel rinci kemudian mempengaruhi stock barang yang ada pada tabel barang dengan kondisi kode barang pada tabel barang sama dengan kode barang pada tabel rincibelanja, makasih mas mohon bantuannya ya mas