Cara Menonaktifkan Pemicu di Oracle

Cara Menonaktifkan Pemicu Di Oracle



Pemicu basis data, atau singkatnya pemicu, mengacu pada prosedur tersimpan yang dijalankan sebagai respons terhadap aktivitas peristiwa dalam objek basis data yang diberikan.

Ini berbeda dari prosedur tersimpan standar, yang membutuhkan permintaan eksplisit dari pengguna. Karena pemicu otomatis, mereka dipicu atau dipicu ketika peristiwa yang ditentukan terjadi, terlepas dari status pengguna atau server yang terhubung.







Sebagian besar basis data relasional mendukung penggunaan pemicu untuk melakukan tugas otomatis seperti mencegah transaksi yang tidak valid, pencatatan peristiwa, pengambilan dan pencatatan statistik akses tabel, dan banyak lagi.



Setelah pemicu dibuat, itu selalu berjalan setiap kali peristiwa terkait terjadi. Namun, Anda mungkin ingin untuk sementara atau secara permanen mencegah pemicu dieksekusi. Di sinilah fitur penonaktifan pemicu berperan.



Posting ini akan membahas tentang langkah-langkah cepat dan mudah untuk menonaktifkan pemicu dalam database Oracle. Jika Anda baru mengenal pemicu Oracle dan ingin tahu cara membuatnya, periksa tautan berikut:





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

Membuat Pemicu Tes

Sebelum kita membahas metode menonaktifkan pemicu, mari kita siapkan pemicu sampel untuk tujuan demonstrasi.



CATATAN : Bagian ini tidak mencakup cara mendefinisikan atau menggunakan pemicu database.

Kami ingin membuat pemicu yang mencatat aktivitas pengguna setelah operasi penghapusan. Misalnya, kita memiliki tabel sample_data dengan informasi seperti yang ditunjukkan:

Pertama-tama kita perlu membuat tabel tempat kita menyimpan log untuk setiap aktivitas penghapusan.

Skema tabel adalah sebagai berikut:

buat tabel sample_data_logs(
nomor ID,
nama_pertama varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
credit_card varchar2(50),
pengenal varchar2(40),
hapus tanggal_tanggal,
dihapus_oleh varchar2(20)
);

Selanjutnya, kita perlu mendefinisikan trigger yang dieksekusi setelah event delete. Definisi pemicu diberikan sebagai berikut:

buat atau ganti trigger log_user
setelah menghapus
pada sample_data
untuk setiap baris
menyatakan
action_username varchar2(20);
mulai
pilih pengguna ke dalam action_username dari dual;
masukkan ke dalam sample_data_logs
nilai (:OLD.id,
:OLD.nama_pertama,
: OLD.alamat_ip,
: OLD.btc_address,
:OLD.kartu_kredit,
: OLD.pengidentifikasi,
sistem,
action_username);
akhir;

Untuk menguji pemicu, mari kita lakukan operasi hapus dari tabel sample_data seperti yang ditunjukkan:

hapus dari sample_data di mana id = 1;

Terakhir, kita dapat memeriksa tabel log untuk memastikan bahwa operasi penghapusan telah direkam:

pilih * dari sample_data_logs;

Keluaran:

Seperti yang bisa kita lihat, tabel memiliki entri data sebelumnya sebelum dihapus, serta nama pengguna yang melakukan aktivitas penghapusan dan waktu penghapusan.

Di bagian berikut, kami akan mendemonstrasikan cara menonaktifkan pemicu sebelumnya. Sebelum melakukannya, pastikan pemicu target Anda berfungsi dan Anda memiliki izin yang memadai untuk mengaktifkan atau menonaktifkannya.

Nonaktifkan Pemicu Menggunakan PL/SQL

Metode pertama dan paling mudah untuk menonaktifkan pemicu menggunakan pernyataan SQL. Untungnya, Oracle memberi kita pernyataan ALTER TRIGGER yang sintaksnya disediakan sebagai berikut:

ALTER TRIGGER trigger_name DISABLE;

Misalnya, untuk menonaktifkan pemicu log_user yang telah kita buat sebelumnya, kita dapat menjalankan perintah berikut:

ubah pemicu log_user nonaktifkan;

Setelah dijalankan, pemicu tidak akan lagi menyimpan salinan data lama dan pengguna yang melakukan penghapusan seperti yang ditunjukkan berikut ini:

hapus dari sample_data di mana id = 2;

Periksa log:

pilih * dari sample_data_logs;

Keluaran:

Seperti yang bisa kita lihat, kita hanya memiliki satu catatan.

Nonaktifkan Pemicu Menggunakan SQL Developer

Kita dapat menggunakan utilitas Pengembang SQL untuk menonaktifkan pemicu di antarmuka grafis. Mulailah dengan masuk ke Pengembang SQL.

Arahkan ke bagian 'Pemicu':

Perluas direktori pemicu dan temukan pemicu yang ingin Anda nonaktifkan. Klik kanan nama pemicu dan pilih 'Nonaktifkan'.

Konfirmasikan operasi 'Nonaktifkan' dan klik 'Terapkan'.

Setelah dinonaktifkan, Oracle menghilangkan pemicunya, menunjukkan bahwa itu tidak aktif.

Kesimpulan

Artikel ini membahas cara menonaktifkan pemicu Oracle menggunakan pernyataan PL/SQL dan utilitas Pengembang SQL.