0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan6 halaman

Contoh Trigger untuk Tabel Petugas

Dokumen ini menjelaskan cara membuat dan menjalankan trigger dalam SQL untuk tabel 'petugas' dan 'petugas_log'. Contoh yang diberikan mencakup trigger untuk operasi INSERT, DELETE, dan UPDATE, serta bagaimana data dicatat dalam tabel log. Setiap trigger berfungsi untuk mencatat perubahan yang terjadi pada tabel petugas ke dalam tabel petugas_log.

Diunggah oleh

sihalohohotasih
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)
5 tayangan6 halaman

Contoh Trigger untuk Tabel Petugas

Dokumen ini menjelaskan cara membuat dan menjalankan trigger dalam SQL untuk tabel 'petugas' dan 'petugas_log'. Contoh yang diberikan mencakup trigger untuk operasi INSERT, DELETE, dan UPDATE, serta bagaimana data dicatat dalam tabel log. Setiap trigger berfungsi untuk mencatat perubahan yang terjadi pada tabel petugas ke dalam tabel petugas_log.

Diunggah oleh

sihalohohotasih
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

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 |
+ + + + +

Anda mungkin juga menyukai