PostgreSQL

PostgreSQL Buat Pemicu Setelah INSERT/UPDATE/DELETE

PostgreSQL Buat Pemicu Setelah INSERT/UPDATE/DELETE
Setiap kali tindakan perubahan yang ditentukan (SQL INSERT, UPDATE, DELETE, atau deklarasi TRUNCATE) dilakukan pada tabel yang ditentukan, pemicu adalah serangkaian peristiwa yang dieksekusi secara otomatis. Pemicu dapat digunakan untuk menerapkan aturan bisnis, mengotentikasi informasi input, dan memelihara jejak audit audit. Pemicu SQL diimplementasikan sesuai dengan format SQL. Ini mencakup struktur yang digunakan dalam beberapa bahasa pemrograman yang memungkinkan Anda untuk mendeklarasikan variabel lokal, memantau aliran proses dengan deklarasi, mengalokasikan hasil pernyataan ke variabel, dan menangani kesalahan. Selanjutnya, setelah Anda membuat pemicu untuk sesuatu, seperti tabel, pemicu segera dihapus segera setelah tabel dihapus. Kita akan melihat bagaimana Pemicu PostgreSQL berfungsi di seluruh segmen ini.

Sintaksis:

Berikut ini adalah sintaks sederhana untuk menghasilkan pemicu:

>> CREATE TRIGGER trigger_name [SEBELUM|SETELAH|BUKAN] event-name PADA table_name [ ---- Trigger Logic ];

Berikut adalah penjelasan dari pertanyaan umum di atas.

Untuk memahami konsep pemicu secara singkat, luncurkan shell PostgreSQL dari aplikasi. Ubah server jika Anda ingin bekerja di server lain, atau tekan enter dari keyboard Anda. Tambahkan nama database yang ingin Anda kerjakan, jika tidak, biarkan apa adanya dan ketuk enter. Seperti yang Anda lihat, saat ini kami bekerja pada port 5432 sebagai default; Anda juga dapat mengubahnya. Setelah itu, berikan nama pengguna selain Postgres jika Anda ingin bekerja dengan pengguna lain, atau biarkan kosong dan tekan tombol enter. Sekarang shell perintah Anda siap digunakan.

TRIGGER Saat INSERT Command

Mari kita lihat contoh pemicu ketika perintah INSERT telah digunakan sebagai peristiwa pemicu. Untuk ini, kita harus membuat dua tabel baru, e.g., "pekerjakan", dan "audit". Tabel "karyawan" akan berisi catatan pribadi karyawan dari perusahaan tertentu dan tabel "audit" akan berisi informasi tentang kapan karyawan bergabung dengan perusahaan. Pertanyaan untuk membuat tabel diberikan di bawah ini.

>> CREATE TABLE mempekerjakan( ID INTEGER NOT NULL PRIMARY KEY, Nama VARCHAR(100) NOT NULL, Umur VARCHAR(100) NOT NULL, Gaji VARCHAR(100) NOT NULL );

>> CREATE TABLE audit (empid INTEGER NOT NULL, entry_date VARCHAR(100) NOT NULL );

Anda harus membuat prosedur yang secara otomatis akan dieksekusi atau bekerja ketika pemicu akan dipanggil. Ini akan digunakan dalam perintah CREATE TRIGGER berikutnya. Dari perintah di bawah ini, Anda bisa mendapatkan ide bahwa kami telah membuat prosedur “auditlogfunc()”, yang akan mengembalikan pemicu sebagai variabel “$examp_table$”. Fungsi dimulai dengan klausa BEGIN, diikuti oleh pernyataan INSERT. Pernyataan INSERT ini memasukkan id otomatis dan tanggal waktu saat ini menggunakan fungsi bawaan ke dalam tabel "audit" dan mengembalikan hasil ini ke TRIGGER.

Saatnya membuat TRIGGER menggunakan perintah CREATE TRIGGER. Kami membuat pemicu bernama "emp_trig" pada tabel "employ". Klausa AFTER INSERT ON berarti pemicu ini hanya akan berfungsi setelah eksekusi perintah insert. UNTUK SETIAP ROW berarti setelah eksekusi setiap perintah INSERT, pemicu ini akan memanggil dan menjalankan prosedur "auditlogfunc()" yang dibuat sebelum.

>> CREATE TRIGGER emp_trig SETELAH INSERT ON mempekerjakan UNTUK SETIAP ROW EXECUTE PROCEDURE auditlogfunc();

Saatnya memasukkan beberapa data ke dalam tabel “employ”. Jalankan perintah INSERT di bawah ini di shell.

>> INSERT INTO mempekerjakan(ID, Nama, Umur, Gaji) NILAI ('1', 'Paul', '34', '60000');

Lihatlah tabel "kerjakan". Data telah berhasil ditambahkan dengan perintah INSERT.

Sekarang lihat sekilas tabel "audit". Anda dapat melihat, itu juga diperbarui karena memicu "emp_trig" dan auditlogfunc().

PEMICU Setelah Perintah UPDATE

Sekarang kita akan melihat contoh pemicu menggunakan perintah UPDATE sebagai peristiwa pemicu. Kita harus membuat prosedur baru lagi dengan nama "update" yang berbeda seperti yang disajikan pada gambar. Prosedur ini juga akan menyisipkan catatan di tabel 'audit' saat dipanggil.

Sekarang, buat pemicu baru bernama "update_emp" menggunakan perintah CREATE TRIGGER. Ini hanya akan berfungsi setelah eksekusi kueri UPDATE pada tabel yang digunakan dan itu akan memanggil prosedur "pembaruan".

Perbarui tabel "employ" dengan mengatur ID-nya ke "2".

Ambil catatan tabel "kerjakan" untuk melihat perubahan seperti yang ditambahkan di bawah ini.

Seperti yang Anda lihat pada tabel “audit”, tabel tersebut telah direorganisasi karena tabel “pekerja” diperbarui.

TRIGGER Setelah DELETE Command

Buka pgAdmin 4 dari aplikasi untuk bekerja di GUI PostgreSQL. Di bawah skema "tes", Anda akan menemukan daftar tabel. Buat tabel baru "emp" dan tabel "audit" yang sama.

Kali ini kita akan menjalankan perintah trigger dengan perintah DELETE. Di bawah ini adalah tabel "emp" dengan beberapa catatan.

Berikut adalah tabel audit dengan dua pembaruan sebelumnya.

Buat prosedur bernama "Del ()" untuk memicu penyisipan di tabel "audit" setelah menghapus catatan dari tabel "emp".

Buat pemicu "del_trig" menggunakan kueri CREATE TRIGGER. Pemicu ini akan menjalankan prosedur "Del" ketika beberapa klausa DELETE akan dilakukan pada tabel "emp".

Mari kita hapus record dari tabel "emp" di mana "id" karyawan adalah "5". Ini akan menghapus satu baris dari tabel "emp".

Ambil catatan tabel "emp" dan lihat itu. Anda dapat melihat bahwa baris telah dihapus di mana "id" adalah "5".

Sekarang ekstrak catatan tabel "audit" dan Anda akan melihat bahwa itu telah diperbarui karena operasi DELETE telah dilakukan pada tabel "emp".

Kesimpulan:

Kami telah melakukan hampir setiap contoh penting untuk memahami konsep TRIGGER saat melakukan operasi INSERT, UPDATE, dan DELETE.

Kontrol & kelola gerakan mouse di antara beberapa monitor di Windows 10
Manajer Mouse Tampilan Ganda memungkinkan Anda mengontrol & mengonfigurasi gerakan mouse di antara beberapa monitor, dengan memperlambat gerakannya di...
WinMouse memungkinkan Anda menyesuaikan & meningkatkan gerakan penunjuk tetikus di PC Windows
Jika Anda ingin meningkatkan fungsi default penunjuk tetikus Anda, gunakan freeware WinMouse. Ini menambahkan lebih banyak fitur untuk membantu Anda m...
Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...