Anda di halaman 1dari 3

update, pemicu dapat menentukan atribut yang update menyebabkan pemicu untuk

mengeksekusi; sedangkan Pembaruan atribut lain tidak akan menyebabkannya dieksekusi.


Misalnya, untuk menentukan bahwa pemicu mengeksekusi setelah melakukan update ke
atribut kelas dari hubungan yang dibutuhkan. Cara mengeksekusi pembaruan don : “Setelah
update mengambil grade Ada memanjang baris lama sebagai klausa dapat digunakan untuk
membuat variabel untuk membunyikan nilai lama dari baris yang diperbarui atau dihapus. Baris
referensi yang baru sebagai klausa dapat digunakan dengan update sebagai tambahan pada
sisipan.

Sebuah pemicu dapat digunakan untuk menjaga nilai kredensial dari tuplesup siswa saat ini
ketika atribut kelas diperbarui untuk tupel dalam kaitannya. Pemicu dijalankan hanya jika
atribut kelas diperbarui dari nilai yang salah atau 'F', ke nilai yang menunjukkan bahwa kursus
berhasil diselesaikan.Pernyataan update adalah sintaks SQL normal kecuali untuk penggunaan
variabel sekarang.

Membuat pemicu kredit yang diperoleh setelah update mengambil (grade) referensi baris baru
sebagai nrow referensi baris lama sebagai orow untuk setiap baris ketika nrow.grade <> 'F' dan
nrow.grade tidak null dan (orow.grade = 'F' Atau orow.grade adalah null) mulai update atom
siswa set tot cred = tot cred + (pilih kredit dari kursus saja course.course id = nrow.course id)
dimana student.id = nrow.id; akhir;
Gambar 5.9 Menggunakan pemicu untuk mempertahankan nilai yang diperoleh.

Pemicu dapat diaktifkan sebelum dimulai (insert, delete, orupdate) dan bukan setelah dimulai.
Pemicu yang melakukan event forean dapat berfungsi sebagai extraconstraints yang dapat
mencegah pembatalan, sisipan, atau penghapusan tidak valid. Sebaliknya, membiarkan
tindakan yang tidak benar dilanjutkan dan menyebabkan Kesalahan, pemicu mungkin
mengambil tindakan untuk memperbaiki masalah sehingga pembaruan, penyisipan, atau
penghapusan menjadi valid.

Sebagai contoh lain, misalkan nilai nilai yang disisipkan kosong, mungkin untuk menunjukkan
tidak adanya nilai. Kita dapat mendefinisikan pemicu yang menggantikan nilai dengan nilai
null. Pernyataan yang ditetapkan dapat digunakan untuk melakukan modifikasi semacam itu.

Contoh pemicu seperti itu muncul pada Gambar 5.10.


Klausa referensi tabel lama sebagai atau referensi tabel baru karena dapat digunakan untuk
merujuk ke tabel sementara (disebut tabel transisi) yang berisi semua baris yang terpengaruh.
Tabel transisi tidak bisa digunakan sebelum pemicu, tapi bisa dibuat trigger set null sebelum
update untuk mengambil referensi baris baru sebagai nrow untuk setiap baris ketika
(nrow.grade = '') mulai set nrow.grade = null; end;

Gambar 5.10 Contoh penggunaan set untuk mengubah nilai yang disisipkan.
Pernyataan SQL tunggal kemudian dapat digunakan untuk melakukan penggandaan
berdasarkan basis tabel transisi.

Standar SQL, dan didukung oleh IBM DB2, sebagian besar sistem basis data lain memiliki
sintaks yang tidak standar sehingga memalsukan pemicu, dan mungkin tidak ada fitur
tambahan dalam standar SQL, perbedaan-perbedaan standart sql dengan tidak standart sql :
dalam sintaks Oracle, tidak seperti sintaks standar SQL, baris kata kunci tidak muncul dalam
pernyataan referensi. Kata kunci atom tidak muncul setelah dimulai. Ada keinginan untuk
menemukan pernyataan pilih di dalam pernyataan update harus dimulai dengan titik dua (:)
untuk menginformasikan sistem bahwa variabel nampak didefinisikan secara eksternal dari
pernyataan SQL. Selanjutnya, subqueries tidak diberi tahu apa adanya dan mengapa penyebab
masalah ini dapat dipecahkan dengan memindahkan predikat kompleks dari klausa saat ini ke
dalam kueri terpisah yang menyimpan hasilnya ke variabel lokal, dan kemudian rujuk variabel
tersebut dalam klausa jika, dan badan pemicu kemudian bergerak ke arah yang sesuai. ayat.
Selanjutnya, di Oracle, pemicu tidak diperkenankan melakukan rollback transaksi secara
langsung; Namun, mereka malah bisa menggunakan fungsi yang disebut menimbulkan
kesalahan aplikasi sehingga tidak hanya memutar ulang transaksi, tapi juga mengembalikan
pesan kesalahan ke pengguna / aplikasi yang melakukan update.
Gambar 5.11 Contoh pemicu untuk pemesanan ulang item

Pemicu dapat dinonaktifkan atau diaktifkan; Secara default mereka diaktifkan saat dibuat,
namun dapat dinonaktifkan dengan menggunakan alter trigger trigger name disable (beberapa
database menggunakan sintaks alternatif seperti trigger trigger trigger name). Pemicu yang
telah dinonaktifkan dapat diaktifkan kembali. Pemicu malah bisa dijatuhkan, yang
menghilangkannya secara permanen, dengan menggunakan nama pemicu pemicu perintah
pelepas. Mengembalikan ke rumahtangga Anda dalam contoh persediaan,
supposewehavethefollowing hubungan:

• persediaan (item, level), yang mencatat jumlah item saat ini di gudang. • minlevel (item,
level), yang mencatat jumlah minimum item yang akan dipertahankan. • menyusun ulang (item,
jumlah), yang mana tidak mungkin dihitung sesuai urutannya jika tingkat di bawah minimum.
• pesanan (item, jumlah), yang mencatat jumlah item yang dipesan

Gambar 5.11 untuk pemesanan ulang item. Sistem database berbasis SQL menggunakan
pemicu secara luas, walaupun sebelum SQL: 1999, mereka bukan bagian dari standar SQL.
Sayangnya, setiap sistem database menerapkan sintaks yang disunting untuk pemicu, yang
menyebabkan inkompatibilitas. Sintaks 1999 untuk sintaks untuk pemicu yang kita gunakan di
sini serupa, namun tidak identik, dengan sintaks dalam sistem database IBM DB2 dan Oracle.