• Tidak ada hasil yang ditemukan

TRIGGER - UNIKOM Kuliah Online

N/A
N/A
Protected

Academic year: 2023

Membagikan "TRIGGER - UNIKOM Kuliah Online"

Copied!
15
0
0

Teks penuh

(1)

TRIGGER

Gentisya Tri Mardiani, S.Kom., M.Kom

Praktikum Basis Data 2 Lab-BD2 [2020]

Teknik Informatika - UNIKOM

(2)

TRIGGER

• Trigger adalah sebuah objek database yang

diasosiasikan dengan sebuah tabel dan akan aktif (terpicu/ trigger) ketika sebuah event terjadi pada tabel tersebut.

• Trigger hanya terjadi ketika ada eksekusi INSERT, DELETE, UPDATE pada tabel yang bersangkutan.

• Waktu eksekusi trigger yang mungkin terjadi yaitu

BEFORE dan AFTER dari statement SQL nya

(3)

Keuntungan

Trigger dapat digunakan untuk mengubah data sebelum proses INSERT dilakukan atau untuk memberikan nilai default.

Misalnya mengubah data diluar nilai yang diperbolehkan.

Dapat menyimpan data suatu record ke tabel lain (misal history) sebelum data tersebut diupdate atau didelete.

Sehingga semua perubahan data data terlacak.

(4)

Struktur Trigger

CREATE TRIGGER nama_trigger { BEFORE | AFTER}

{ INSERT | UPDATE | DELETE } ON nama_tabel

FOR EACH ROW

statement sql

(5)

Mengakses nilai baru dan lama

• Data lama dapat di-reference dengan record OLD dan data baru dapat di-reference dengan record NEW.

• Untuk mengacu ke sebuah field dapat ditulis

dengan NEW.namafield atau OLD.namafield

(6)

Contoh

• Tabel pegawai

{ NIP, Nama, Tgl_Lahir, Kelamin, Alamat, Kota, Tgl_masuk, Kode_jabatan, Kode_area }

• Buatlah sebuah trigger yang akan menyimpan history Lokasi alamat pegawai, jika sebuah alamat berubah, maka alamat lama harus disimpan ke tabel history alamat.

(7)

Buat tabel history

CREATE TABLE history_alamat ( Waktu DATETIME,

NIP CHAR(5),

Alamat VARCHAR (35), Kota VARCHAR (15),

User VARCHAR(20)

) ;

(8)

Contoh Trigger

CREATE TRIGGER trig_update_alamat AFTER UPDATE ON pegawai

FOR EACH ROW

INSERT INTO history_alamat

VALUES (now(), OLD.NIP, OLD.Alamat, OLD.Kota, USER() );

(9)

Contoh update data

1. Ubahlah alamat dari pegawai yang NIP nya 12349 menjadi di Jl. Dipatiukur, dan kota Bandung

2. Ubahlah alamat dari pegawai yang NIP nya 12348 menjadi di Jl. Karangwaru, dan kota Magelang

3. Setelah melakukan update, tampilkan data

yang ada pada tabel history_alamat

(10)

Contoh update data

UPDATE pegawai SET Alamat=‘Jl. Dipatiukur’, Kota=‘Bandung’

WHERE NIP=12349;

UPDATE pegawai SET Alamat=‘Jl. Karangwaru’, Kota=‘Magelang’

WHERE NIP=12348;

SELECT * FROM history_alamat;

(11)

Contoh 2

• Buatlah suatu trigger yang mencegah perubahan pada primary key tabel penerbit (Kode_Penerbit).

Jika ada perubahan, maka Kode_Penerbit di tabel buku pun tidak boleh berubah.

• Hal ini dapat dilakukan dengan menetapkan nilai Kode_Penerbit yang baru (NEW. Kode_Penerbit) dengan nilai yang lama (OLD. Kode_Penerbit)

(12)

Contoh 2

CREATE TRIGGER trig_update_kodepenerbit BEFORE UPDATE ON buku

FOR EACH ROW

SET NEW. Kode_Penerbit =OLD. Kode_Penerbit;

(13)

Contoh 2

UPDATE buku SET Kode_Penerbit=‘AF’

WHERE Kode_Penerbit=‘AO’;

SELECT * FROM buku;

(14)

Menghapus Trigger

• DROP TRIGGER nama_trigger;

• DROP TRIGGER trig_update_kodepenerbit;

(15)

Latihan

1. Buat tabel history_lokasi:

Waktu DATETIME,

Kode_Penerbit VARCHAR, 2 karakter Lokasi VARCHAR, 20 karakter

User VARCHAR, 20 karakter

2. Buatlah sebuah trigger yang akan menyimpan

history Lokasi alamat penerbit, jika sebuah alamat berubah, maka alamat lama harus disimpan ke

tabel history lokasi.

Referensi

Dokumen terkait

Hanya mengisi Nip, nama peserta, tanggal lahir, jenis kelamin, agama, alamat, dan no.telepon kemudian klik tombol save Nip Pegawai:(terisi) Nama Peserta:(terisi)

NO NAMA NIP TEMPAT LAHIR TGL LAHIR KELAMIN JENIS PENDIDIKAN

NO Nama Peserta Akademik Gelar NIP NUPTK Kelamin Jenis Tempat Lahir (Tgl/Bln/Thn) Tanggal Lahir Kepegawaian Status Gol.. Pendidikan Nama Sekolah (Satmikal) Alamat Sekolah

Nama Jenis Kelamin Posisi Lokasi Tempat Tgl Lahir No Telp Email Pendidikan Terakhir Alamat Status Nama Jenis Kelamin Posisi Lokasi Tempat Tgl Lahir No Telp Email Pendidikan

NO Nama Peserta Akademik NIP NUPTK Kelamin Tempat Lahir (Tgl/Bln/Thn) Kepegawaian Gol.. Pendidikan Nama Sekolah (Satmikal) Alamat Sekolah

Tampilan Riwayat Keluarga Suami Istri Tampilan menu terdiri dari nip, nama pegawai , jenis kelamin, tempat lahir, tanggal lahir, alamat, pendidikan dan lain – lain untuk diisi oleh

Adi Rachmanto, S.Kom NIP... Adi Rachmanto, S.Kom

URUT NAMA TGL LAHIR NIP NPWP STATUS PEG - GOL KAWIN KODE JIWA PENGHASILAN POTONGAN JUMLAH YANG DIBAYARKAN TTD MASKER TMT... URUT NAMA TGL LAHIR NIP NPWP STATUS PEG - GOL KAWIN