Како онемогућити окидач у Орацле-у

Kako Onemoguciti Okidac U Oracle U



Окидачи базе података, или скраћено окидачи, односе се на ускладиштене процедуре које се извршавају као одговор на активност догађаја унутар датог објекта базе података.

Ово се разликује од стандардних ускладиштених процедура које захтевају експлицитно позивање од корисника. Пошто су окидачи аутоматизовани, они се покрећу или активирају када се деси наведени догађај, без обзира на стање повезаног корисника или сервера.







Већина релационих база података подржава коришћење окидача за обављање аутоматизованих задатака као што су спречавање неважећих трансакција, евидентирање догађаја, преузимање и бележење статистике приступа табели и још много тога.



Једном када је окидач креиран, он се увек покреће кад год се догоди повезани догађај. Међутим, можда ћете желети да привремено или трајно спречите извршавање окидача. Овде долази у обзир функција онемогућавања окидача.



Овај пост ће говорити о брзим и лаким корацима за онемогућавање окидача у оквиру Орацле базе података. Ако сте нови у Орацле тригерима и желите да знате како да их креирате, проверите следећу везу:





2АФФ476А152Ц4ЕФ931589Ц8Ц07786ДД4Д510Ц33Ц

Креирање окидача за тестирање

Пре него што разговарамо о методама онемогућавања окидача, поставимо узорак окидача у сврху демонстрације.



БЕЛЕШКА : Овај одељак не покрива како да дефинишете или користите покретаче базе података.

Желимо да креирамо окидач који евидентира активност корисника након операције брисања. На пример, претпоставимо да имамо табелу сампле_дата са приказаним информацијама:

Прво морамо да направимо табелу у којој чувамо евиденције за сваку активност брисања.

Шема табеле је следећа:

креирајте табелу сампле_дата_логс(
ИД број,
фирст_наме варцхар2(50),
ип_аддресс варцхар2(20),
бтц_аддресс варцхар2(50),
кредитна_картица варцхар2(50),
идентификатор варцхар2(40),
делете_дате датум,
делетед_би варцхар2(20)
);

Затим морамо да дефинишемо окидач који се извршава након догађаја брисања. Дефиниција окидача је дата на следећи начин:

креирајте или замените окидач лог_усер
након брисања
на узорку_података
за сваки ред
прогласити
ацтион_усернаме варцхар2(20);
почети
изаберите корисника у ацтион_усернаме из дуал;
уметните у сампле_дата_логс
вредности (:ОЛД.ид,
:ОЛД.име,
:ОЛД.ип_аддресс,
:ОЛД.бтц_аддресс,
:ОЛД.цредит_цард,
:ОЛД.идентификатор,
сисдате,
ацтион_усернаме);
крај;

Да бисмо тестирали окидач, хајде да извршимо операцију брисања из табеле сампле_дата као што је приказано:

избрисати из сампле_дата где је ид = 1;

Коначно, можемо да проверимо табелу евиденције да бисмо били сигурни да је операција брисања снимљена:

изаберите * из сампле_дата_логс;

Излаз:

Као што видимо, табела има унос претходних података пре брисања, као и корисничко име које је извршило активност брисања и време брисања.

У следећим одељцима ћемо показати како да онемогућите претходни окидач. Пре него што то урадите, уверите се да је ваш циљни окидач функционалан и да имате довољно дозвола да га омогућите или онемогућите.

Онемогућите окидач користећи ПЛ/СКЛ

Први и најједноставнији метод онемогућавања окидача је коришћење СКЛ наредбе. Срећом, Орацле нам даје наредбу АЛТЕР ТРИГГЕР чија је синтакса дата на следећи начин:

АЛТЕР ТРИГГЕР триггер_наме ДИСАБЛЕ;

На пример, да бисмо онемогућили окидач лог_усер који смо раније креирали, можемо покренути следеће:

алтер триггер лог_усер дисабле;

Када се изврши, окидач више неће чувати копију старих података и  корисника који је брисао као што је приказано у наставку:

избрисати из сампле_дата где је ид = 2;

Проверите дневнике:

изаберите * из сампле_дата_логс;

Излаз:

Као што видимо, имамо још само један рекорд.

Онемогућите окидач користећи СКЛ Девелопер

Можемо користити СКЛ Девелопер услужни програм да онемогућимо окидач у графичком интерфејсу. Почните тако што ћете се пријавити на СКЛ Девелопер.

Идите до одељка „Триггери“:

Проширите директоријум окидача и пронађите окидач који желите да онемогућите. Кликните десним тастером миша на име окидача и изаберите „Онемогући“.

Потврдите операцију „Онемогући“ и кликните на „Примени“.

Када се онемогући, Орацле засиви окидач, што указује да је неактиван.

Закључак

Овај чланак је истраживао како да онемогућите Орацле окидач помоћу ПЛ/СКЛ наредби и СКЛ Девелопер услужног програма.