03 Trigger

download 03 Trigger

of 11

Transcript of 03 Trigger

  • 7/22/2019 03 Trigger

    1/11

    TRIGGER

    D3 Komputer dan Sistem InformasiSekolah Vokasi UGM

    2012

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    2/11

    Membuat Trigger

    CREATE TRIGGER nama_triggerwaktu_trigger kejadian_triggerON nama_tabel

    FOR EACH ROW isi_trigger

    Keterangan :

    waktu_trigger :

    BEFORE | AFTERkejadian_trigger :INSERT | UPDATE | DELETE

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    3/11

    Contoh Trigger1

    Buatlah tabel-tabel berikut :

    Tabel latih1

    id1 INTEGER

    Tabel latih2 id2 INTEGER

    Tabel latih3

    id3 INTEGER, PRIMARY KEY, AUTO_INCREMENT

    Tabel latih4

    id4 INTEGER, PRIMARY KEY, AUTO_INCREMENT

    no4 INTEGER, DEFAULT 0

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    4/11

    Contoh Trigger1-lanjutan

    DELIMITER ##

    CREATE TRIGGER trig_satu

    BEFORE INSERT ON latih1

    FOR EACH ROW

    BEGIN

    INSERT INTO latih2 SET id2 = NEW.id1;

    DELETE FROM latih3 WHERE id3 = NEW id1;

    UPDATE latih4 SET no4=no4+1 WHERE id4 = NEW.id1;

    END;##

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    5/11

    Contoh Trigger1-lanjutan

    Masukkan data-data berikut :

    10 baris nilai NULL ke tabel latih3

    10 baris nilai 0 ke kolom id4 pada tabel latih

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    6/11

    Melihat Triggeryang Telah Dibuat

    Sintaks berikut ini digunakan untuk melihat statustriggeryang telah dibuat pada suatu basis data.

    SHOW TRIGGERS [FROM nama_basisdata |

    LIKE nama_tabel];

    Sintaks berikut ini digunakan untuk melihatstatement prosedur SQL pada triggeryang telahdibuat.

    SHOW CREATE trigger nama_trigger;

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    7/11

    Mengaktifkan trig_satu

    Karena kejadian yang dipilih adalah INSERT,

    maka untuk mengaktifkan triggerkita

    masukkan data ke dalam tabel latih1.

    Masukkan data-data berikut ke tabel latih1:

    1, 3, 8, 4, 3, 1, 5, 3

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    8/11

    Contoh Trigger 2

    Buatlah tabel baru pada basis data sia dengan

    nama program_studi_log yang berisi:

    waktu DATETIME, PRIMARY KEY

    kode_prodi CHAR(3)

    nama VARCHAR(50)

    kode_jurusan CHAR(3)

    oleh VARCHAR(50)

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    9/11

    Contoh Trigger 2

    DELIMITER ^^

    CREATE TRIGGER trig_prodi AFTER UPDATE

    ON program_studi

    FOR EACH ROW

    BEGIN

    INSERT INTO program_studi_log VALUES

    (NOW(), OLD.kode_prodi, OLD.nama,OLD.kode_jurusan, USER());

    END^^

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    10/11

    Mengaktifkan trig_prodi

    Karena kejadian yang dipilih adalah UPDATE,

    maka untuk mengaktifkan triggerkita ubah

    data pada tabel program_studi.

    Ubah Matematika menjadi Matematika

    Murni

    Ubah Ilmu Komputer menjadi S1

    KOMSI

    Praktikum Basis Data 2 - rizkiaf

  • 7/22/2019 03 Trigger

    11/11

    Latihan Trigger

    Buatlah tabel barang (kode_barang,

    nama_barang, stok, satuan, harga) dan

    tabel jual (kode_nota, tanggal, kode_barang,

    jumlah).

    Buatlah trigger yang dapat mengurangkan

    stok barang secara otomatis ketika ada

    transaksi penjualan!

    Praktikum Basis Data 2 - rizkiaf