Как да деактивирате тригер в Oracle

Kak Da Deaktivirate Triger V Oracle



Тригерите на базата данни или накратко тригерите се отнасят до съхранени процедури, които се изпълняват като отговор на дейност на събитие в даден обект на база данни.

Това се различава от стандартните съхранени процедури, които изискват изрично извикване от потребителя. Тъй като тригерите са автоматизирани, те се задействат или задействат, когато възникне определеното събитие, независимо от състоянието на свързания потребител или сървъра.







Повечето релационни бази данни поддържат използването на тригери за извършване на автоматизирани задачи като предотвратяване на невалидни транзакции, регистриране на събития, извличане и записване на статистически данни за достъп до таблици и др.



След като бъде създаден тригер, той винаги се изпълнява, когато настъпи свързаното събитие. Въпреки това може да искате временно или постоянно да предотвратите изпълнението на тригер. Тук влиза в действие функцията за деактивиране на тригера.



Тази публикация ще обсъди бързите и лесни стъпки за деактивиране на тригер в база данни на Oracle. Ако не сте запознати с тригерите на Oracle и искате да знаете как да създадете такъв, проверете следната връзка:





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

Създаване на тестов тригер

Преди да обсъдим методите за деактивиране на тригер, нека настроим примерен тригер за демонстрационни цели.



ЗАБЕЛЕЖКА : Този раздел не обхваща как да дефинирате или използвате тригерите на базата данни.

Искаме да създадем тригер, който регистрира активността на потребителя след операция за изтриване. Да предположим например, че имаме таблица sample_data с показаната информация:

Първо трябва да създадем таблица, където да съхраняваме регистрационните файлове за всяка дейност по изтриване.

Схемата на таблицата е както следва:

създаване на таблица sample_data_logs(
Идентификационен номер,
first_name varchar2(50),
ip_адрес varchar2(20),
btc_адрес varchar2(50),
кредитна_карта varchar2(50),
идентификатор varchar2 (40),
delete_date дата,
deleted_by varchar2(20)
);

След това трябва да дефинираме тригер, който се изпълнява след събитие за изтриване. Дефиницията на тригера е предоставена, както следва:

създайте или заменете тригер log_user
след изтриване
на sample_data
за всеки ред
декларирам
действие_потребителско име varchar2(20);
започвам
изберете потребител в action_username от dual;
вмъкнете в sample_data_logs
стойности (:OLD.id,
:СТАРО.първо_име,
:OLD.ip_адрес,
:OLD.btc_адрес,
:OLD.кредитна_карта,
:OLD.идентификатор,
системна дата,
действие_потребителско име);
край;

За да тестваме тригера, нека извършим операция за изтриване от таблицата sample_data, както е показано:

изтриване от sample_data, където id = 1;

И накрая, можем да проверим таблицата с регистрационни файлове, за да се уверим, че операцията по изтриване е записана:

изберете * от sample_data_logs;

Изход:

Както виждаме, в таблицата има запис на предишните данни преди изтриването, както и потребителското име, което е извършило дейността по изтриване, и времето на изтриването.

В следващите раздели ще демонстрираме как да деактивирате предишния тригер. Преди да направите това, уверете се, че вашият целеви тригер е функционален и имате достатъчно разрешения, за да го активирате или деактивирате.

Деактивирайте тригер с помощта на PL/SQL

Първият и най-прост метод за деактивиране на тригер е използването на SQL оператор. За щастие, Oracle ни предоставя оператор ALTER TRIGGER, чийто синтаксис е предоставен, както следва:

ALTER TRIGGER trigger_name DISABLE;

Например, за да деактивираме тригера log_user, който създадохме по-рано, можем да изпълним следното:

промяна на задействане log_user деактивиране;

След като бъде изпълнен, тригерът вече няма да пази копие на старите данни и потребителя, извършил изтриването, както е показано по-долу:

изтриване от sample_data, където id = 2;

Проверете регистрационните файлове:

изберете * от sample_data_logs;

Изход:

Както виждаме, все още имаме само един запис.

Деактивирайте тригер с помощта на SQL Developer

Можем да използваме помощната програма SQL Developer, за да деактивираме тригер в графичния интерфейс. Започнете, като влезете в SQL Developer.

Придвижете се до секцията „Тригери“:

Разширете директорията на тригерите и намерете тригера, който искате да деактивирате. Щракнете с десния бутон върху името на тригера и изберете „Деактивиране“.

Потвърдете операцията „Деактивиране“ и щракнете върху „Приложи“.

След като бъде деактивиран, Oracle оцветява тригера в сиво, което показва, че е неактивен.

Заключение

Тази статия изследва как да деактивирате задействане на Oracle с помощта на PL/SQL изрази и помощната програма SQL Developer.