Lompat ke konten Lompat ke sidebar Lompat ke footer

Tutorial Lengkap Membuat Trigger Tabel MySQL di phpMyAdmin

 



Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE. INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger. ada beberapa event yang bisa kita gunakan untuk mengekseskusi triger yaitu :

1.            BEFORE INSERT

2.            AFTER INSERT

3.            BEFORE UPDATE

4.            AFTER UPDATE

5.            BEFORE DELETE

6.            AFTER DELETE

Perbedaan Before dan After Pada Trigger MySQL

 

Before Trigger adalah jenis trigger yang secara otomatis dijalankan sebelum operasi tertentu terjadi pada tabel . Sebaliknya, after trigger adalah jenis trigger yang secara otomatis dijalankan setelah operasi tertentu terjadi pada tabel. Oleh karena itu, definisi ini menjelaskan perbedaan mendasar antara sebelum dan sesudah pemicu/trigger di MySQL.

 

Membuat Trigger Tabel di MySQL

 

Contoh yang akan saya berikan dalam tutorial ini adalah contoh trigger dengan event AFTER Insert, Update, dan Delete. Untuk Contoh before mungkin akan dibahasa pada sesi berikutnya atau akan ditambahkan/diedit di postingan ini

 

Persiapan Tabel

 

Dalam contoh ini saya sudah mempersiapkan dua buah tabel yaitu :

https://www.root93.co.id/2022/09/membuat-history-edit-dengan-trigger-mysql.html

1.            tb_jurusan_pertama sebagai tabel induk

2.            tb_jurusan_kedua sebagai tabel anak

 

https://www.root93.co.id/2022/09/membuat-history-edit-dengan-trigger-mysql.html

CREATE TABLE `tb_jurusan_kedua` (

  `id` int(10) UNSIGNED NOT NULL,

  `nama_jurusan` varchar(100) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

-- --------------------------------------------------------

 

--

-- Table structure for table `tb_jurusan_pertama`

--

 

CREATE TABLE `tb_jurusan_pertama` (

  `id` int(10) UNSIGNED NOT NULL,

  `nama_jurusan` varchar(100) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

--

-- Indexes for dumped tables

--https://www.root93.co.id/2022/09/membuat-history-edit-dengan-trigger-mysql.html

 

--

-- Indexes for table `tb_jurusan_kedua`

--

ALTER TABLE `tb_jurusan_kedua`

  ADD PRIMARY KEY (`id`),

  ADD KEY `id` (`id`);

 

--

-- Indexes for table `tb_jurusan_pertama`

--

ALTER TABLE `tb_jurusan_pertama`

  ADD PRIMARY KEY (`id`),

  ADD KEY `id` (`id`);

 

--

-- AUTO_INCREMENT for dumped tables

--

 

--

-- AUTO_INCREMENT for table `tb_jurusan_kedua`

--

ALTER TABLE `tb_jurusan_kedua`

  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

 

--

-- AUTO_INCREMENT for table `tb_jurusan_pertama`

--

ALTER TABLE `tb_jurusan_pertama`

  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

COMMIT;

 

Selanjutnya buatlah sebuah trigger klik pada tb_jurusan_pertama, lalu klik Menu Triggers  lalu pilih Add trigger

 

AFTER INSERT

Buat untuk trigger insert seperti berikut

 

 

 

Pada Definition Anda perlu mendefinisikan atau memasukan perintah untuk event after yang akkan dijalankan, gunakan contoh query seperti berikut

 

Query di Definition :

 

INSERT INTO tb_jurusan_kedua VALUES(null, NEW.nama_jurusan);

 

AFTER UPDATE

 

 

Jika nama jurusan pada tabel induk dirubah, maka secara otomatis juga akan merubah nama jurusan pada tabel anak

 

Query di Definition :

UPDATE tb_jurusan_kedua 

SET

  nama_jurusan = NEW.nama_jurusan

WHERE

  id = NEW.id

 

 

AFTER DELETE

 

 

Jika data pada tabel jurusan pertama dihapus maka trigger mysql  akan menghapus data pada tabel jurusan kedua

 

Query di Definition:

 

DELETE FROM tb_jurusan_kedua WHERE tb_jurusan_kedua.id = old.id

 

Selanjutnya Anda bisa langsung menguji trigger tersebut dengan melakukan operasi pada tabel tb_jurusan_pertama seperti melakukan INSERT, UPDATE dan DELETE Data, jika berhasil maka tabel kedua atau tb_jurusan_kedua akan ikut terpengaruh

 

Posting Komentar untuk "Tutorial Lengkap Membuat Trigger Tabel MySQL di phpMyAdmin"