MODUL 1.12
FUNCTION DAN TRIGGER
I. Materi
1.1 Trigger
Trigger adalah prosedur tersimpan pada MySQL yang secara otomatis
dijalankan apabila data di dalam tabel berubah karena eksekusi perintah SQL
(INSERT, UPDATE atau DELETE). Salah satu penggunaannya yang paling umum adalah
untuk menerapkan pembatasan yang lebih kompleks dari yang telah diizinkan
melalui pembatasan CHECK, yang berfungsi membatasi informasi yang disisipkan ke
dalam kolom.
Trigger bisa dibuat bersama dengan perintah INSERT, yang akan melakukan query
ke tabel lain dan mengembalikan nilai logik yang membantu membatasi data yang
diberikan kepada kolom tertentu. Sebagai contoh: Trigger bisa dibuat untuk
menjalankan replikasi, misalnya apabila ada sebuah baris disisipkan ke dalam
database Z,
sebuah baris dengan informasi yang sama akan ditambahkan ke dalam database Y. Atau Apabila sebuah baris dihapus dari sebuah tabel, Trigger akan menghapus baris lain yang berhubungan dengan baris tersebut pada tabel lain. Trigger dibuat sebagai sebuah transaksi dan bisa dimundurkan apabila ada masalah yang dideteksi.
sebuah baris dengan informasi yang sama akan ditambahkan ke dalam database Y. Atau Apabila sebuah baris dihapus dari sebuah tabel, Trigger akan menghapus baris lain yang berhubungan dengan baris tersebut pada tabel lain. Trigger dibuat sebagai sebuah transaksi dan bisa dimundurkan apabila ada masalah yang dideteksi.
II.Tugas Pendahuluan
1. Jelaskan
yang dimaksud trigger !
2. Jelaskan yang dimaksud dengan function !
3. Jelaskan manfaat dari function maupun
trigger !
III.
Praktikum
Tools : MySql Query
Browser
SYNTAK
UNTUK FUNCTION:
CREATE FUNCTION Function_name ([func_parameter
[,…]])
RETURN type
[characteristic ..] routine_body
Pemanggilan fungsi pada ekspresi SQL dapat dilakukan
dengan beberapa cara:
a.
Dipanggil pada perintah SELECT
b.
Dipanggil pada clausa kondisi dari WHERE dan HAVING.
c. Dipanggil dari clause CONNECT BY, START WITH, ORDER BY
dan GROUP BY.
d. Pada klausa VALUES dari perintah INSERT.
e. Pada klausa SET dari perintah UPDATE
SYNTAK TRIGGER:
CREATE
[DEFINER = { user | CURRENT_USER }]fjjs
TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
Keterangan:
- Trigger_time : kapan trigger terjadi (BEFORE /AFTER)
- Trigger_event : operasi yang menyebabkan trigger
(INSERT/UPDATE/DELETE)
- Trigger_stmt
: aksi yang terjadi pada saat trigger terjadi
Latihan
1. Buatlah sebuah fungsi yang digunakan untuk mendapatkan
volume sebuah balok. Ujilah fungsi yang anda buat!
2. Berdasarkan tabel rental:
- Buatlah fungsi yang
digunakan untuk mendapatkan jumlah inventory yang belum dikembalikan oleh
seorang customer ! Ujilah dengan customer_id=100,200,300.
- Buatlah sebuah fungsi yang
digunakan untuk mencari berapa hari sebuah film dipinjam oleh seorang
customer.
- Buatlah sebuah fungsi yang
digunakan untuk mencari siapa customer yang sedang meminjam sebuah film. Ujilah untuk inventory_id =
106,177,1020
3. Contoh
penggunaan Trigger
a. Buatlah 4
buah tabel dengan struktur sebagai berikut:
CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT
PRIMARY KEY);
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT
0
);
b. Buatlah
sebuah trigger sebagai berikut :
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;
Perhatikan trigger tersebut :
- Nama trigger adalah : …………………………..
- Trigger_time nya :
- Trigger_event :
- Trigger_event terjadi pada tabel ……………….
- Trigger_stament melakukan proses :
c. Lakukan proses
penyisipan data sebagai berikut:
c.1.
INSERT INTO test3 (a3) VALUES
(NULL), (NULL),
(NULL), (NULL), (NULL),
(NULL), (NULL),
(NULL), (NULL), (NULL);
c.2.
INSERT INTO test4 (a4) VALUES
(0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
c.3.
INSERT INTO test1 VALUES
-> (1), (3), (1), (7), (1), (8), (4), (4);
Perhatikan hasil pada tabel test1, test2, test3 dan test4
!
4. Cobalah contoh-contoh yang ada pada modul_7 tentang
Trigger !
a. Buat terlebih dahulu tabel barang.
b. Isi sesuai dengan contoh.
c. Buat tabel
detail pembelian sesuai dengan struktur yang telah ditetapkan.
d. Coba buat
beberapa trigger untuk event pada tabel detailpembelian baik untuk delete,
insert maupun update.
e. Coba lakukan
insert, update dan delete pada tabel detailpembelian tunjukan perubahan yang
terjadi !!
5. Buatlah
trigger untuk kasus penjualan. Tabel identik dengan table penjualan
Belajar OTODIDAK akan membangun karakter mandiri
salam hangat
0 komentar:
Posting Komentar