Sabtu, 25 Oktober 2014
Perintah Mysql membuat Tabel Log (Mencatat Aktivitas dengan Trigger)
Assalamu'alaikum ,,,
Siang gays ,,,,
Hmmm , akhirnya setelah
dari pagi sampe sekarang mencari logika mysql untuk membuat tabel log yang
disuruh oleh bapak dosen akhirnya ketemu , ga sia sia deh waktunya seharian
didepan laptop :D
Baiklah langsung saja ya
, sebelumnya saya akan menjelaskan tentang pengertian triger terlebih dahulu :
Trigger adalah
sekumpulan perintah di mysql yang bisa menjalankan operasi tertentu pada tabel
secara otomatis , tapi disini saya hanya akan menjelaskan cara membuat tabel
log , sesuai judul yang saya buat :D
Langkah-langkah :
1. Buat tabel yang
temen-temen ingin menyimpan aktivitas hapus,edit dan ubah
Misal, kalo ingin lebih
cepat bisa lewat CMD , dan pastikan buatnya di database yang ingin kalian kenai
perintah ini ya :
CREATE TABLE `log` (
`ket` text NOT
NULL,
`datetime`
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`user`
varchar(50) NOT NULL DEFAULT '',
`data_lama`
varchar(25) NOT NULL DEFAULT '',
`data_baru`
varchar(25) NOT NULL DEFAULT ''
) ENGINE=MYISAM DEFAULT
CHARSET=latin1;
2. Kalau sudah , buat
tabel yang ingin kalian kenai perintah trigger, misal saya akan menggunakan
perintah trigger di tabel karyawan , ohya pastikan sudah di buat ID di tabel
yang anda buat , contoh disini saya membuat tabel karyawan , mungkin tidak usah
saya tampilkan yak pasti kalian sudah bisa gampang ko :D , langsung saja lanjut
ke langkah yang ke-3
3. Misal langkah 1 dan 2
sudah selesai , langsung saja kita gunakan perintah trigger :
CATAT TABEL TAMBAH (copi
coding dibawah ke cmd , pastikan keadaan didalam database , dan perintah
dibawah digunakan untuk mencatat aktivitas tambah)
DELIMITER $$
DROP TRIGGER IF EXISTS
`after_insert` $$
CREATE TRIGGER
`after_insert` AFTER INSERT ON `karyawan`
FOR EACH ROW
BEGIN
INSERT INTO LOG
(ket, user, data_baru)
VALUES
(CONCAT('Insert data ke tabel karyawan, no_karyawan = ', NEW.no_karyawan), USER(),
NEW.nm_karyawan);
END $$
DELIMITER ;
CATAT TABEL UBAH (copi
coding dibawah ke cmd , pastikan keadaan didalam database , dan perintah
dibawah digunakan untuk mencatat aktivitas ubah)
CATAT TABEL UBAH :
DELIMITER $$
DROP TRIGGER IF EXISTS
`after_update` $$
CREATE TRIGGER
`after_update` AFTER UPDATE ON `karyawan`
FOR EACH ROW
BEGIN
INSERT INTO LOG
(ket, USER, data_baru, data_lama)
VALUES
(CONCAT('Update data ke tabel karyawan, no_karyawan = ', NEW.no_karyawan), USER(),
NEW.nm_karyawan, old.nm_karyawan);
END $$
DELIMITER ;
CATAT TABEL HAPUS
: (copi coding dibawah ke cmd , pastikan keadaan didalam database , dan
perintah dibawah digunakan untuk mencatat aktivitas hapus)
DELIMITER $$
DROP TRIGGER IF EXISTS
`before_delete` $$
CREATE TRIGGER
`before_delete` BEFORE DELETE ON `karyawan`
FOR EACH ROW
BEGIN
INSERT INTO LOG
(ket, USER, data_lama)
VALUES
(CONCAT('Delete data ke tabel karyawan, no_karyawan = ', OLD.no_karyawan), USER(),
OLD.nm_karyawan);
END $$
DELIMITER ;
jadi Deh :D
nih kalo pingin lihat
hasil tabel log yang saya buat sebagai bukti :
sekian tutorial dari
saya , semoga bermanfaat , terima kasih :)
@Fb : Imam A.
Ashari
@Pin : 75e43690
Sumber inspirasi
: http://garyabraham.blogspot.com/2013/01/mencatat-log-pada-mysql-menggunakan.html
Author: Mohammad
Mohammad is the founder of STC Network which offers Web Services and Online Business Solutions to clients around the globe. Read More →
Related Posts:
Langganan:
Posting Komentar (Atom)
Klo menambah data User yang login melakukan proses CRUD, gimana mas?
BalasHapusThanks
BalasHapus(copi coding dibawah ke cmd , pastikan keadaan didalam database , dan perintah dibawah digunakan untuk mencatat aktivitas tambah)
BalasHapusmaksudnya gimana ya mas?
Komentar ini telah dihapus oleh pengarang.
BalasHapusterimakasih sangat tidak membantu saya :)
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapuslalu jika kita ingin mencatat hanya id user, timestamp login dan timestamp logout bagaimana gan?
BalasHapus