Hogyan lehet letiltani a triggert az Oracle-ben

Hogyan Lehet Letiltani A Triggert Az Oracle Ben



Az adatbázis-triggerek vagy röviden triggerek olyan tárolt eljárásokra utalnak, amelyek egy adott adatbázis-objektum eseménytevékenységére adott válaszként futnak le.

Ez eltér a szabványos tárolt eljárásoktól, amelyek kifejezett meghívást igényelnek a felhasználótól. Mivel a triggerek automatizáltak, a megadott esemény bekövetkezésekor aktiválódnak vagy aktiválódnak, függetlenül a csatlakoztatott felhasználó vagy kiszolgáló állapotától.







A legtöbb relációs adatbázis támogatja a triggerek használatát az olyan automatizált feladatok végrehajtására, mint az érvénytelen tranzakciók megelőzése, az eseménynaplózás, a tábla-hozzáférési statisztikák lekérése és rögzítése stb.



A trigger létrehozása után mindig lefut, amikor a kapcsolódó esemény bekövetkezik. Előfordulhat azonban, hogy ideiglenesen vagy véglegesen meg szeretné akadályozni egy trigger végrehajtását. Itt lép életbe a trigger-letiltás funkció.



Ez a bejegyzés az Oracle adatbázison belüli trigger letiltásának gyors és egyszerű lépéseiről szól. Ha még nem ismeri az Oracle triggereket, és szeretné tudni, hogyan hozhat létre egyet, ellenőrizze a következő hivatkozást:





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

Teszttrigger létrehozása

Mielőtt megvitatnánk a trigger letiltásának módszereit, állítsunk be egy minta triggert demonstrációs célokra.



JEGYZET : Ez a szakasz nem foglalkozik az adatbázis-triggerek meghatározásával vagy használatával.

Olyan triggert szeretnénk létrehozni, amely naplózza a felhasználói tevékenységet a törlési művelet után. Tegyük fel például, hogy van egy sample_data táblánk az alábbi információkkal:

Először létre kell hoznunk egy táblát, amelyben minden törlési tevékenység naplóit tároljuk.

A táblázat séma a következő:

tábla létrehozása sample_data_logs(
személyi igazolvány száma,
keresztnév varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
credit_card varchar2(50),
azonosító varchar2(40),
delete_date dátum,
varchar2(20) törölte
);

Ezután meg kell határoznunk egy triggert, amely egy törlési esemény után kerül végrehajtásra. A trigger definíciója a következő:

hozza létre vagy cserélje ki a log_user triggert
törlés után
a sample_data oldalon
minden sorhoz
kijelent
művelet_felhasználónév varchar2(20);
kezdődik
válasszuk ki a felhasználót az action_username-be a dualból;
illessze be a minta_adatnaplókba
értékek (:OLD.id,
:RÉGI.utónév,
:OLD.ip_address,
:OLD.btc_address,
:RÉGI.hitelkártya,
:OLD.identifier,
sysdate,
action_username);
vége;

A trigger teszteléséhez hajtsunk végre egy törlési műveletet a sample_data táblából az ábrán látható módon:

törlés a minta_adatból, ahol id = 1;

Végül ellenőrizhetjük a naplótáblázatot, hogy megbizonyosodjunk arról, hogy a törlési művelet rögzítésre került:

válassza ki a *-ot a sample_data_logs közül;

Kimenet:

Mint látjuk, a táblázatban szerepel a törlés előtti korábbi adatok bejegyzése, valamint a törlési tevékenységet végző felhasználónév és a törlés időpontja.

A következő szakaszokban bemutatjuk, hogyan lehet letiltani az előző triggert. Mielőtt ezt megtenné, győződjön meg arról, hogy a cél trigger működőképes, és rendelkezik-e elegendő jogosultsággal az engedélyezéséhez vagy letiltásához.

Tiltsa le a triggert PL/SQL használatával

A trigger letiltásának első és legegyszerűbb módja az SQL utasítás használata. Szerencsére az Oracle ALTER TRIGGER utasítást biztosít számunkra, amelynek szintaxisa a következő:

ALTER TRIGGER trigger_neve DISABLE;

Például a korábban létrehozott log_user trigger letiltásához a következőket futtathatjuk:

alter trigger log_user disable;

A végrehajtást követően az eseményindító többé nem fogja megőrizni a régi adatok és a törlést végrehajtó felhasználó másolatát az alábbiak szerint:

törlés a minta_adatból, ahol id = 2;

Ellenőrizze a naplókat:

válassza ki a *-ot a sample_data_logs közül;

Kimenet:

Mint látjuk, még mindig csak egy rekordunk van.

Tiltsa le a triggert az SQL Developer segítségével

Az SQL Developer segédprogrammal letilthatjuk a grafikus felületen lévő triggereket. Kezdje azzal, hogy bejelentkezik az SQL Developerbe.

Lépjen a „Triggerek” szakaszhoz:

Bontsa ki a triggerek könyvtárát, és keresse meg a letiltani kívánt triggert. Kattintson a jobb gombbal a trigger nevére, és válassza a „Letiltás” lehetőséget.

Erősítse meg a „Letiltás” műveletet, és kattintson az „Alkalmaz” gombra.

A letiltást követően az Oracle kiszürkíti a triggert, jelezve, hogy az inaktív.

Következtetés

Ez a cikk azt vizsgálta, hogyan lehet letiltani egy Oracle triggert PL/SQL utasítások és SQL Developer segédprogram segítségével.