PostgreSQL

PostgreSQL Buat Pencetus Selepas INSERT / UPDATE / DELETE

PostgreSQL Buat Pencetus Selepas INSERT / UPDATE / DELETE
Setiap kali tindakan perubahan yang ditentukan (SQL INSERT, UPDATE, DELETE, atau TRUNCATE deklarasi) dilakukan pada jadual yang ditentukan, pemicu adalah sekumpulan peristiwa yang dijalankan secara automatik. Pencetus dapat digunakan untuk menerapkan peraturan perniagaan, mengesahkan maklumat input, dan mempertahankan jejak audit. Pencetus SQL dilaksanakan mengikut format SQL. Ini merangkumi struktur yang digunakan dalam beberapa bahasa pengaturcaraan yang memungkinkan anda untuk menyatakan pemboleh ubah tempatan, memantau aliran proses dengan deklarasi, memperuntukkan hasil pernyataan untuk pemboleh ubah, dan menangani kesalahan. Selanjutnya, setelah anda membuat pencetus untuk sesuatu, seperti jadual, pencetus akan segera dikeluarkan sebaik sahaja jadual dikeluarkan. Kami akan melihat bagaimana fungsi Pencetus PostgreSQL di seluruh segmen ini.

Sintaks:

Berikut adalah sintaks mudah untuk menghasilkan pencetus:

>> BUAT TRIGGER trigger_name [SEBELUM | SELEPAS | SELEPAS] nama-acara ON table_name [---- Trigger Logic];

Berikut adalah penjelasan mengenai pertanyaan umum di atas.

Untuk memahami konsep pencetus secara ringkas, lancarkan shell PostgreSQL dari aplikasi. Tukar pelayan jika anda ingin menggunakan pelayan lain, atau tekan enter dari papan kekunci anda. Tambahkan nama pangkalan data yang ingin anda kerjakan, jika tidak, biarkan seperti sedia ada dan ketik enter. Seperti yang anda lihat, kami kini bekerja di port 5432 sebagai lalai; anda juga boleh mengubahnya. Selepas itu, berikan nama pengguna selain Postgres jika anda ingin bekerjasama dengan pengguna lain, atau biarkan kosong dan tekan butang enter. Sekarang shell arahan anda sudah siap digunakan.

TRIGGER Setelah INSERT Perintah

Mari kita lihat contoh pencetus apabila arahan INSERT telah digunakan sebagai peristiwa pencetus. Untuk ini, kita harus membuat dua jadual baru, e.g., "Menggunakan", dan "audit". Jadual "mempekerjakan" akan berisi catatan peribadi pekerja dari syarikat tertentu dan tabel "audit" akan berisi informasi tentang ketika karyawan bergabung dengan perusahaan. Pertanyaan untuk membuat jadual diberikan di bawah.

>> BUAT TABLE menggunakan (ID INTEGER BUKAN NULL PRIMARY KEY, Name VARCHAR (100) NOT NULL, Age VARCHAR (100) NOT NULL, Gaji VARCHAR (100) NOT NULL);

>> BUAT audit JADUAL (empid INTEGER NOT NULL, entry_date VARCHAR (100) NOT NULL);

Anda harus membuat prosedur yang akan dijalankan secara automatik atau berfungsi ketika pemicu akan dipanggil. Ia akan digunakan dalam perintah CREATE TRIGGER seterusnya. Dari perintah di bawah ini, anda dapat memperoleh idea bahawa kami telah membuat prosedur "auditlogfunc ()", yang akan mengembalikan pemicu sebagai pemboleh ubah "$ examp_table $". Fungsi dimulakan dengan klausa BEGIN, diikuti oleh pernyataan INSERT. Pernyataan INSERT ini memasukkan id automatik dan tarikh waktu semasa menggunakan fungsi bawaan ke dalam jadual "audit" dan mengembalikan hasil ini ke TRIGGER.

Sudah tiba masanya untuk menghasilkan TRIGGER menggunakan perintah CREATE TRIGGER. Kami membuat pencetus bernama "emp_trig" di atas meja "menggunakan". Klausa SETELAH INSERT ON bermaksud bahawa pencetus ini hanya akan berfungsi setelah pelaksanaan perintah sisipan. UNTUK SETIAP ROW bermaksud setelah pelaksanaan setiap perintah INSERT, pencetus ini akan memanggil dan melaksanakan prosedur “auditlogfunc ()” yang dibuat sebelum.

>> BUAT TRIGGER emp_trig SETELAH MASUKKAN UNTUK MENGGUNAKAN SETIAP PROSEDUR REC EXECUTE auditlogfunc ();

Sudah waktunya untuk memasukkan beberapa data ke dalam jadual "menggunakan". Jalankan arahan INSERT di bawah di shell.

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

Lihat jadual "menggunakan". Data telah berjaya ditambahkan dengan arahan INSERT.

Sekarang lihat sekilas jadual "audit". Anda dapat lihat, ini juga diperbarui kerana pencetus "emp_trig" dan auditlogfunc ().

TRIGGER Setelah Perintah UPDATE

Kita sekarang akan melihat contoh pemicu menggunakan arahan UPDATE sebagai peristiwa pencetus. Kita harus membuat prosedur baru lagi dengan nama "kemas kini" yang berbeda seperti yang ditunjukkan dalam gambar. Prosedur ini juga akan memasukkan rekod dalam jadual 'audit' semasa panggilan.

Sekarang, buat pemicu baru bernama "update_emp" menggunakan perintah CREATE TRIGGER. Ini hanya akan berfungsi setelah pelaksanaan permintaan UPDATE di atas meja digunakan dan ia akan memanggil prosedur "kemas kini".

Kemas kini jadual "menggunakan" dengan menetapkan IDnya ke "2".

Ambil rekod jadual "menggunakan" untuk melihat perubahan seperti yang dilampirkan di bawah.

Seperti yang dapat Anda lihat di tabel "audit", ini telah disusun ulang ketika tabel "mempekerjakan" diperbarui.

TRIGGER Setelah HAPUS Perintah

Buka pgAdmin 4 dari aplikasi untuk mengerjakan GUI PostgreSQL. Di bawah skema "ujian", anda akan menemui senarai jadual. Buat jadual "emp" baru dan jadual "audit" yang sama.

Kali ini kita akan memanggil perintah trigger dengan perintah DELETE. Berikut adalah jadual "emp" dengan beberapa catatan.

Berikut adalah jadual audit dengan dua kemas kini sebelumnya.

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

Buat pencetus "del_trig" menggunakan pertanyaan CREATE TRIGGER. Pencetus ini akan menjalankan prosedur "Del" ketika beberapa klausa DELETE akan dilakukan pada tabel "emp".

Mari hapus rekod dari jadual "emp" di mana "id" pekerja adalah "5". Ia akan menghapus satu baris dari jadual "emp".

Ambil rekod jadual "emp" dan lihatlah. Anda dapat melihat bahawa baris telah dihapus di mana "id" adalah "5".

Sekarang ekstrak catatan jadual "audit" dan anda akan melihat bahawa ia telah diperbarui kerana operasi DELETE telah dilakukan pada tabel "emp".

Kesimpulan:

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

Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...
Pasang permainan Strategi OpenRA terkini di Ubuntu Linux
OpenRA adalah mesin permainan Strategi Masa Nyata / Bebas yang mencipta semula permainan Westwood awal seperti Command & Conquer klasik: Makluman Mera...
Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...