Bagaimana untuk Melumpuhkan Pencetus dalam Oracle

Bagaimana Untuk Melumpuhkan Pencetus Dalam Oracle



Pencetus pangkalan data, atau ringkasnya pencetus, merujuk kepada prosedur tersimpan yang dilaksanakan sebagai tindak balas kepada aktiviti acara dalam objek pangkalan data tertentu.

Ini berbeza daripada prosedur tersimpan standard, yang memerlukan permohonan yang jelas daripada pengguna. Memandangkan pencetus adalah automatik, ia dicetuskan atau dicetuskan apabila peristiwa yang ditentukan berlaku, tanpa mengira keadaan pengguna atau pelayan yang disambungkan.







Kebanyakan pangkalan data hubungan menyokong penggunaan pencetus untuk melaksanakan tugas automatik seperti menghalang transaksi tidak sah, pengelogan peristiwa, mengambil dan merekod statistik akses jadual dan banyak lagi.



Sebaik sahaja pencetus dicipta, ia sentiasa berjalan setiap kali peristiwa yang berkaitan berlaku. Walau bagaimanapun, anda mungkin mahu untuk sementara atau kekal menghalang pencetus daripada melaksanakan. Di sinilah ciri lumpuh pencetus dimainkan.



Siaran ini akan membincangkan tentang langkah cepat dan mudah untuk melumpuhkan pencetus dalam pangkalan data Oracle. Jika anda baru mengenali pencetus Oracle dan ingin mengetahui cara menciptanya, semak pautan berikut:





https://linuxhint.com/oracle-create-trigger

Mencipta Pencetus Ujian

Sebelum kita membincangkan kaedah melumpuhkan pencetus, mari kita sediakan pencetus sampel untuk tujuan demonstrasi.



NOTA : Bahagian ini tidak merangkumi cara mentakrifkan atau menggunakan pencetus pangkalan data.

Kami ingin mencipta pencetus yang merekodkan aktiviti pengguna selepas operasi pemadaman. Sebagai contoh, katakan kita mempunyai jadual sample_data dengan maklumat seperti yang ditunjukkan:

Mula-mula kita perlu membuat jadual di mana kita menyimpan log untuk setiap aktiviti pemadaman.

Skema jadual adalah seperti berikut:

buat sampel_data_logs(
nombor ID,
nama_pertama varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
kad_kredit varchar2(50),
pengecam varchar2(40),
tarikh delete_date,
deleted_by varchar2(20)
);

Seterusnya, kita perlu menentukan pencetus yang dilaksanakan selepas acara pemadaman. Definisi pencetus disediakan seperti berikut:

buat atau gantikan trigger log_user
selepas padam
pada data_sampel
untuk setiap baris
mengisytiharkan
action_username varchar2(20);
bermula
pilih pengguna ke dalam action_username daripada dual;
masukkan ke dalam sample_data_logs
nilai (:OLD.id,
:OLD.first_name,
:OLD.ip_address,
:OLD.btc_address,
:OLD.credit_card,
:OLD.identifier,
sysdate,
action_username);
akhir;

Untuk menguji pencetus, mari kita lakukan operasi padam daripada jadual sample_data seperti yang ditunjukkan:

padam daripada data_sampel di mana id = 1;

Akhir sekali, kita boleh menyemak jadual log untuk memastikan bahawa operasi pemadaman telah direkodkan:

pilih * daripada sample_data_logs;

Pengeluaran:

Seperti yang kita lihat, jadual mempunyai kemasukan data sebelumnya sebelum pemadaman, serta nama pengguna yang melakukan aktiviti pemadaman dan masa pemadaman.

Dalam bahagian berikut, kami akan menunjukkan cara untuk melumpuhkan pencetus sebelumnya. Sebelum berbuat demikian, pastikan pencetus sasaran anda berfungsi dan anda mempunyai kebenaran yang mencukupi untuk mendayakan atau melumpuhkannya.

Lumpuhkan Pencetus Menggunakan PL/SQL

Kaedah pertama dan paling mudah untuk melumpuhkan pencetus adalah menggunakan pernyataan SQL. Nasib baik, Oracle memberikan kami pernyataan ALTER TRIGGER yang sintaksnya disediakan seperti berikut:

ALTER TRIGGER trigger_name DISABLE;

Sebagai contoh, untuk melumpuhkan pencetus log_user yang kami buat sebelum ini, kami boleh menjalankan perkara berikut:

alter trigger log_user disable;

Setelah dilaksanakan, pencetus tidak lagi akan menyimpan salinan data lama dan  pengguna yang melakukan pemadaman seperti yang ditunjukkan dalam perkara berikut:

padam daripada data_sampel di mana id = 2;

Semak log:

pilih * daripada sample_data_logs;

Pengeluaran:

Seperti yang kita lihat, kita masih mempunyai satu rekod.

Lumpuhkan Pencetus Menggunakan Pembangun SQL

Kita boleh menggunakan utiliti SQL Developer untuk melumpuhkan pencetus dalam antara muka grafik. Mulakan dengan log masuk ke Pemaju SQL.

Navigasi ke bahagian 'Pencetus':

Kembangkan direktori pencetus dan cari pencetus yang ingin anda lumpuhkan. Klik kanan nama pencetus dan pilih 'Lumpuhkan'.

Sahkan operasi 'Lumpuhkan' dan klik 'Guna'.

Setelah dilumpuhkan, Oracle mengkelabukan pencetus, menunjukkan bahawa ia tidak aktif.

Kesimpulan

Artikel ini meneroka cara untuk melumpuhkan pencetus Oracle menggunakan pernyataan PL/SQL dan utiliti SQL Developer.