Trigger
Pada postingan kali ini aku akan membahas penggunaan trigger di database. Trigger dipakai untuk menyisipkan sebuah fungsi pada ketika suatu record di-INSERT, UPDATE dan DELETE. Trigger sangat ideal untuk mengecek atau memodifikasi sebuah data pada kolom sebelum dimasukkan ke dalam database, sehingga sebuah fungsi sanggup dipanggil setiap ketika secara otomatis ketika sebuah row akan dimodifikasi. Ciri khas dari fungsi yang diperuntukkan untuk trigger ialah menghasilkan output bertipe OPAQUE. Tipe opaque ialah sebuah tipe yang menginformasikan pada database bahwa fungsi tersebut tidak menghasilkan satu dari tipe data yang ditetapkan SQL dan tidak secara pribadi sanggup dipakai dalam statemen SQL. Language (bahasa) PL/PGSQL sanggup dipakai untuk trigger procedure, fungsi untuk trigger ini mempunyai beberapa variabel khusus yang terdeklarasi secara otomatis.
Variabel tersebut antara lain:
• NEW: Variabel yang berisi nilai gres suatu record pada ketika INSERT atau UPDATE, bertipe RECORD.
• OLD: Variabel yang berisi nilai usang suatu record pada ketika UPDATE atau DELETE, juga bertipe RECORD.
Berikut ini beberapa pola penggunaan fungsi sebagai trigger procedure: Contoh : trigger berikut ini memastikan isi field atau kolom nama pada tabel anggota selalu abjad besar.
db_personal=> CREATE FUNCTION tes_trigger()
db_personal-> RETURNS opaque
db_personal-> AS 'BEGIN
db_personal'> NEW.nama := UPPER(NEW.nama);
db_personal'> RETURN NEW;
db_personal'> END;'
db_personal-> LANGUAGE 'plpgsql';
CREATE
kemudian lanjutkan dengan pembuatan trigger yang berfungsi untuk memanggil fungsi secara otomatis ketika kita melaksanakan INSERT ataupun UPDATE pada tabel anggota.
db_personal=>
CREATE TRIGGER tes1_trigger
db_personal-> BEFORE INSERT
db_personal-> ON anggota
db_personal-> FOR EACH ROW
db_personal-> EXECUTE PROCEDURE tes_trigger();
CREATE
cobalah INSERT beberapa data ke dalam tabel anggota:
db_personal=> INSERT INTO anggota (id, nama)
db_personal-> VALUES (26, 'andhie');
INSERT 70831 1
db_personal=> INSERT INTO anggota
db_personal-> VALUES (83, 'rWatia');
INSERT 70832 1
tampilkan isi dari tabel anggota, kesannya menyerupai pada tabel di bawah ini. Kaprikornus setiap data yang kita INSERT walaupun dalam penulisannya memakai abjad kecil namun secara otomatis trigger akan memanggil fungsi yang bertugas untuk mengganti setiap data yang masuk semoga kesannya nanti selalu menjadi abjad besar: db_personal=> SELECT * FROM anggota;
id | nama
--------+-------------
26 | ANDHIE
83 | RWATIA (2 rows)
Berikut ialah pola implementasinya di database :
Comments
Post a Comment