ПостгреСКЛ

ПостгреСКЛ креира окидач након ИНСЕРТ / УПДАТЕ / ДЕЛЕТЕ

ПостгреСКЛ креира окидач након ИНСЕРТ / УПДАТЕ / ДЕЛЕТЕ
Кад год се дефинирана акција промене (СКЛ ИНСЕРТ, УПДАТЕ, ДЕЛЕТЕ или ТРУНЦАТЕ декларација) изврши на дефинисаној табели, окидач је низ скупова догађаја који се извршавају аутоматски. Окидачи се могу користити за наметање пословних правила, потврђивање аутентичности улазних информација и одржавање ревизорског трага. СКЛ окидачи се имплементирају према СКЛ формату. Укључује структуре коришћене у неколико програмских језика које вам омогућавају декларацију локалних променљивих, надгледање тока процеса декларацијама, додељивање исхода израза променљивим и управљање грешкама. Даље, када конструишете окидач за нешто, попут табеле, окидач се одмах уклања чим се табела уклони. Погледаћемо како ПостгреСКЛ окидачи функционишу у овом сегменту.

Синтакса:

Следи једноставна синтакса за генерисање окидача:

>> ИЗРАДИ ТРИГГЕР име_утрцаја [ПРЕ | НАКОН | УМЕСТО] име-догађаја НА име_табеле [---- Триггер Логиц];

Ево објашњења горњег општег упита.

Да бисте укратко разумели концепт окидача, покрените ПостгреСКЛ љуску из апликација. Промените сервер ако желите да радите на другом серверу или притисните тастер ентер са тастатуре. Додајте име базе података на којем желите да радите, у супротном га оставите какво јесте и тапните на ентер. Као што видите, тренутно радимо на порту 5432 као подразумевани; можете и да га промените. Након тога, наведите корисничко име осим Постгреса ако желите да радите са другим корисником или га оставите празним и притисните тастер ентер. Сада је ваша командна љуска спремна за употребу.

ТРИГГЕР по наредби ИНСЕРТ

Погледајмо пример окидача када је наредба ИНСЕРТ коришћена као догађај окидача. За ово морамо направити две нове табеле, нпр.г., „Запослити“ и „ревидирати“. Табела „запослити“ ће садржати личне евиденције запослених из одређене компаније, а табела „ревизија“ ће садржати информације о томе када су се запослени придружили компанији. Упити за креирање табела дати су у наставку.

>> СТВОРИ ТАБЕЛУ запосли (ИД ИНТЕГЕР НУЛЛ ПРИМАРНИ КЉУЧ, Име ВАРЦХАР (100) НОТ НУЛЛ, Аге ВАРЦХАР (100) НОТ НУЛЛ, Плата ВАРЦХАР (100) НОТ НУЛЛ);

>> СТВАРИ ТАБЕЛУ ревизија (емпид ИНТЕГЕР НОТ НУЛЛ, ентри_дате ВАРЦХАР (100) НОТ НУЛЛ);

Морате створити процедуру која ће се аутоматски извршити или радити када се позове окидач. Користиће се у следећој наредби ЦРЕАТЕ ТРИГГЕР. Из наредбе у наставку можете добити идеју да смо креирали процедуру „аудитлогфунц ()“, која ће вратити окидач као променљиву „$ екамп_табле $“. Функција започиње клаузулом БЕГИН, након чега следи израз ИНСЕРТ. Ова изјава ИНСЕРТ убацује аутоматски ИД и тренутни датум-време користећи уграђену функцију у табелу „ревизија“ и враћа овај резултат ТРИГГЕР-у.

Време је да генеришете ТРИГГЕР помоћу наредбе ЦРЕАТЕ ТРИГГЕР. Креирамо окидач под називом „емп_триг“ на табели „запосли“. Клаузула АФТЕР ИНСЕРТ ОН значи да ће овај окидач радити само након извршавања наредбе инсерт. ЗА СВАКИ РЕД значи да ће након извршавања сваке наредбе ИНСЕРТ овај окидач позвати и извршити поступак „аудитлогфунц ()“ креиран непосредно пре.

>> СТВАРИ ТРИГГЕР емп_триг НАКОН УМОЋЕЊА УКЉУЧИ ЗА СВАКИ РЕД ИЗВРШИ ПОСТУПАК аудитлогфунц ();

Време је да у табелу убаците неке податке „запосли“. Извршите доњу наредбу ИНСЕРТ у љусци.

>> ИНСЕРТ ИНТО запошљавање (ИД, име, старост, плата) ВРЕДНОСТИ ('1', 'Паул', '34', '60000');

Погледајте табелу „запосли“. Подаци су успешно додати командом ИНСЕРТ.

Сада погледајте табелу „ревизија“. Можете видети, такође се ажурира због окидача „емп_триг“ и аудитлогфунц ().

ТРИГГЕР по наредби УПДАТЕ

Сада ћемо гледати пример окидача који користи команду УПДАТЕ као догађај окидача. Морамо поново да креирамо нову процедуру са другачијим називом „упдате“ како је приказано на слици. Овај поступак ће такође уметнути записе у табелу 'ревизије' на позив.

Сада креирајте нови окидач под називом „упдате_емп“ помоћу наредбе ЦРЕАТЕ ТРИГГЕР. Ово ће радити само након извршења УПДАТЕ упита на табели запослити и позват ће поступак „упдате“.

Ажурирајте табелу „запосли“ постављањем њеног ИД-а на „2“.

Дохватите записе табеле „запосли“ да бисте видели промене како су доле дате.

Као што видите на табели „ревизија“, она је реорганизована како се табела „запошљава“ ажурирала.

ТРИГГЕР по наредби ДЕЛЕТЕ

Отворите пгАдмин 4 из апликација да бисте радили на ГУИ ПостгреСКЛ. Под шемом „тест“, открићете листу табела. Направите нову табелу „емп“ и исту табелу „ревизије“.

Овај пут ћемо позвати команду окидача помоћу наредбе ДЕЛЕТЕ. Испод је табела „емп“ са неким записима.

Ево табеле ревизије са претходна два ажурирања.

Креирајте процедуру под називом „Дел ()“ да бисте покренули уметање у табелу „аудит“ након брисања записа из табеле „емп“.

Направите окидач „дел_триг“ помоћу упита ЦРЕАТЕ ТРИГГЕР. Овај окидач ће извршити процедуру „Дел“ када ће се на таблици „емп“ извршити нека клаузула ДЕЛЕТЕ.

Избришимо запис из табеле „емп“ где је „ид“ запосленог „5“. Избрисаће један ред из табеле „емп“.

Дохватите записе табеле „емп“ и погледајте их. Можете видети да је ред уклоњен тамо где је „ид“ био „5“.

Сада извуците записе табеле „аудит“ и приметићете да су ажурирани јер је извршена операција ДЕЛЕТЕ на табели „емп“.

Закључак:

Урадили смо готово сваки суштински пример да бисмо разумели концепт ТРИГГЕР-а док смо изводили ИНСЕРТ, УПДАТЕ и ДЕЛЕТЕ операције.

Преглед бежичног миша Мицрософт Сцулпт Тоуцх
Недавно сам читао о Мицрософт Сцулпт Тоуцх бежични миш и одлучио да га купи. Након што сам га неко време користио, одлучио сам да са њим поделим своје...
Екран Трацкпад и показивач миша АппиМоусе за Виндовс таблете
Корисницима таблета често недостаје показивач миша, посебно када су уобичајени за коришћење преносних рачунара. Паметни телефони и таблети на додир ос...
Средњи тастер миша не ради у оперативном систему Виндовс 10
Тхе средње дугме миша помаже вам да се крећете кроз дугачке веб странице и екране са пуно података. Ако се то заустави, на крају ћете користити тастат...