1.
1 Membuat dan Menjalankan Trigger
CONTOH : BEFORE INSERT
1. Kita memiliki tabel dengan nama petugas
create table petugas
-> (kd_petugas int primary key,
-> nama_petugas varchar(50),
-> username varchar(50),
-> password varchar(10),
-> alamat varchar(50));
2. Setelah itu kita buat tabel Trigger dengan nama petugas_log
create table petugas_log
-> (no int auto_increment primary key,
-> nama varchar(50),
-> waktu timestamp,
-> keterangan text);
3. Kita tidak perlu input data ke dalam tabel, kita akan isi data sambil
menjalankan Trigger.
4. Buat sintaks trigger.
DELIMITER $$
CREATE TRIGGER before_tugas_insert
-> BEFORE INSERT ON petugas
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO petugas_log VALUES
-> (0,[Link],NOW(),'PETUGAS BARU');
-> END$$
DELIMITER ;
INSERT INTO petugas VALUES
(101,'RINA SIREGAR','@rinasiregarr','rin123','[Link]');
5. Lihat tabel petugas dan tabel petugas_log.
SELECT * FROM PETUGAS;
+ + + + + +
| kd_petugas | nama_petugas | username | password | alamat |
+ + + + + +
| 101 | RINA SIREGAR | @rinasiregarr | rin123 | [Link] |
+ + + + + +
CONTOH : AFTER DELETE
1. Buat sintaks Trigger
DELIMITER $$
CREATE TRIGGER after_tugas_delete
-> AFTER DELETE ON petugas
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO petugas_log VALUES
-> (0,[Link],NOW(),'PENGHAPUSAN PETUGAS');
-> END$$
DELIMITER ;
DELETE FROM petugas WHERE username ='@rinasiregarr';
2. Lihat table petugas dan petugas_log
SELECT * FROM PETUGAS;
Empty set (0.002 sec)
SELECT * FROM PETUGAS_LOG;
+ + + + +
| no | username | waktu | keterangan |
+ + + + +
| 1 | @rinasiregarr | 2024-06-01 14:44:46 | PETUGAS BARU |
| 2 | @rinasiregarr | 2024-06-01 14:52:28 | PENGHAPUSAN PETUGAS |
+ + + + +
CONTOH : AFTER UPDATE
1. Buat sintaks Trigger
DELIMITER $$
CREATE TRIGGER after_tugass_update
-> AFTER UPDATE ON petugas
-> FOR EACH ROW
-> BEGIN
-> DECLARE keterangan TEXT;
-> SET keterangan = CONCAT([Link],' -> ',[Link]);
-> INSERT INTO petugas_log VALUES (0,[Link],NOW(),keterangan);
-> END$$
DELIMITER ;
INSERT INTO petugas VALUES
(102,'SYIFA ANDINI PUTRI','@Syifaandini','syifaaa','[Link]');
2. Kita perbarui data menggunaka sintaks UPDATE
UPDATE petugas SET username ='@Syifaandn' WHERE kd_petugas ='102';
3. Lihat table petugas dan petugas _log
SELECT * FROM PETUGAS;
+ + + + + +
| kd_petugas | nama_petugas | username | password | alamat |
+ + + + + +
| 102 | SYIFA ANDINI PUTRI | @Syifaandn | syifaaa | [Link] |
+ + + + + +
SELECT * FROM PETUGAS_LOG;
+ + + + +
| no | username | waktu | keterangan |
+ + + + +
| 1 | @rinasiregarr | 2024-06-01 14:44:46 | PETUGAS BARU |
| 2 | @rinasiregarr | 2024-06-01 14:52:28 | PENGHAPUSAN PETUGAS |
| 3 | @Syifaandini | 2024-06-01 15:03:24 | PETUGAS BARU |
| 4 | @Syifaandn | 2024-06-01 15:05:19 | @Syifaandini -> @Syifaandn |
+ + + + +
CONTOH : AFTER INSERT
1. Buat sintaks Trigger
CREATE TRIGGER after_tugas1_insert
-> AFTER INSERT ON petugas
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO petugas_log VALUES
-> (0,[Link],NOW(),'PETUGAS BARU');
-> END$$
DELIMITER ;
INSERT INTO petugas VALUES
(103,'ROSA FITRIA','@rosafitria','Rosaaa','[Link]');
2. Lihat table petugas dan table petugas_log
SELECT * FROM PETUGAS;
+ + + + + +
| kd_petugas | nama_petugas | username | password | alamat |
+ + + + + +
| 102 | SYIFA ANDINI PUTRI | @Syifaandn | syifaaa | [Link] |
| 103 | ROSA FITRIA | @rosafitria | Rosaaa | [Link] |
+ + + + + +
SELECT * FROM PETUGAS_LOG;
+ + + + +
| no | username | waktu | keterangan |
+ + + + +
| 1 | @rinasiregarr | 2024-06-01 14:44:46 | PETUGAS BARU |
| 2 | @rinasiregarr | 2024-06-01 14:52:28 | PENGHAPUSAN PETUGAS |
| 3 | @Syifaandini | 2024-06-01 15:03:24 | PETUGAS BARU |
| 4 | @Syifaandn | 2024-06-01 15:05:19 | @Syifaandini -> @Syifaandn |
| 5 | @rosafitria | 2024-06-01 15:18:17 | PETUGAS BARU |
| 6 | @rosafitria | 2024-06-01 15:18:17 | PETUGAS BARU |
+ + + + +
CONTOH : BEFORE DELETE
1. Buat sintaks Trigger
DELIMITER $$
CREATE TRIGGER before_tugas_delete
-> BEFORE DELETE ON petugas
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO petugas_log VALUES
-> (0,[Link],NOW(),'PENGHAPUSAN PETUGAS');
-> END$$
DELIMITER ;
DELETE FROM petugas WHERE kd_petugas ='102';
2. Lihat table petugas dan petugas_log
SELECT * FROM PETUGAS;
+ + + + + +
| kd_petugas | nama_petugas | username | password | alamat |
+ + + + + +
| 103 | ROSA FITRIA | @rosafitria | Rosaaa | [Link] |
+ + + + + +
SELECT * FROM PETUGAS_LOG;
+ + + + +
| no | username | waktu | keterangan |
+ + + + +
| 1 | @rinasiregarr | 2024-06-01 14:44:46 | PETUGAS BARU |
| 2 | @rinasiregarr | 2024-06-01 14:52:28 | PENGHAPUSAN PETUGAS |
| 3 | @Syifaandini | 2024-06-01 15:03:24 |PETUGAS BARU |
| 4 | @Syifaandn | 2024-06-01 15:05:19 |@Syifaandini -> @Syifaandn |
| 5 | @rosafitria | 2024-06-01 15:18:17 |PETUGAS BARU |
| 6 | @rosafitria | 2024-06-01 15:18:17 |PETUGAS BARU |
| 7 | @Syifaandn | 2024-06-01 15:30:02 |PENGHAPUSAN PETUGAS |
| 8 | @Syifaandn | 2024-06-01 15:30:02 |PENGHAPUSAN PETUGAS |
+ + + + +
CONTOH : BEFORE UPDATE
1. Buat sintaks Trigger
DELIMITER $$
CREATE TRIGGER before_tugass_update
-> BEFORE UPDATE ON petugas
-> FOR EACH ROW
-> BEGIN
-> DECLARE keterangan TEXT ;
-> SET keterangan = CONCAT([Link],' -> ',[Link]);
-> INSERT INTO petugas_log VALUES (0,[Link],NOW(),keterangan);
-> END$$
DELIMITER ;
INSERT INTO petugas VALUES
(105,'MURI SINAGA','@murisinaga01','Muri00','[Link]');
2. Kita perbarui data dengan menggunakan sintaks UPDATE
UPDATE petugas SET username = '@MuriSinaga' WHERE kd_petugas ='105';
3. Menampilkan table petugas dan petugas_log
SELECT * FROM PETUGAS;
+ + + + + +
| kd_petugas | nama_petugas | username | password | alamat |
+ + + + + +
| 103 | ROSA FITRIA | @rosafitria | Rosaaa | [Link] |
| 104 | MURI SINAGA | @MuriSinaga | Muri00 | [Link] |
+ + + + + +
SELECT * FROM PETUGAS_LOG;
+ + + + +
| no | username | waktu | keterangan |
+ + + + +
| 1 | @rinasiregarr | 2024-06-01 14:44:46 | PETUGAS BARU |
| 2 | @rinasiregarr | 2024-06-01 14:52:28 | PENGHAPUSAN PETUGAS |
| 3 | @Syifaandini | 2024-06-01 15:03:24 | PETUGAS BARU |
| 4 | @Syifaandn | 2024-06-01 15:05:19 | @Syifaandini -> @Syifaandn |
| 5 | @rosafitria | 2024-06-01 15:18:17 | PETUGAS BARU |
| 6 | @rosafitria | 2024-06-01 15:18:17 | PETUGAS BARU |
| 7 | @Syifaandn | 2024-06-01 15:30:02 | PENGHAPUSAN PETUGAS |
| 8 | @Syifaandn | 2024-06-01 15:30:02 | PENGHAPUSAN PETUGAS |
| 9 | @MuriSinaga | 2024-06-01 15:41:23 | @murisinaga01 -> @MuriSinaga |
| 10 | @MuriSinaga | 2024-06-01 15:41:23 | @murisinaga01 -> @MuriSinaga |
+ + + + +