Покретање програмирања у МиСКЛ -у
Окидачи или се обично јављају програмирање "окидача" Они су врста објеката који се налазе у базама података. Када се одређени догађај или радња изврши у наведеној бази података, наш окидач аутоматски извршава радњу за коју смо је претходно програмирали.
Тхе окидачи активирају се аутоматски када се изврше операције ИНСЕРТ, ДЕЛЕТЕ или УПДАТЕ, које се убацују, бришу или ажурирају. Приликом извршавања било које од ових радњи, наши покретачи извршавају инструкцију или блок инструкција за које су претходно програмирани.
Тхе структура окидача у МиСКЛ је следећи:
ЕНЛАРГЕ
[ДЕФИНЕР = {корисник | ЦУРРЕНТ_УСЕР}]Овај део кода говори менаџеру базе података који корисник има привилегије да може да позове наше окидаче када се појаве ДМЛ догађаји. Подразумевана вредност је ЦУРРЕНТ_УСЕР.
Да бисте изабрали име нашег окидача, морате следити веома добар критеријум који је: Прво унесите назив табеле, затим иницијал ДМЛ операције, (И за уметање, Д за брисање или У за ажурирање), а затим почетно од тренутка извршења (или А за после или Б за пре).
ПРЕ | ДЕСПУЕС ДЕОн само означава тренутак када ће се наш окидач извршити, односно ако се окидач активира пре ДМЛ догађаја (пре) или после (после).
ИНСЕРТ | ИЗБРИШИ | АЖУРИРАЊЕКаже нам која ће реченица бити употребљена за активирање окидача, Инсерт за унос података, Делете за брисање или Упдате за измену.
ОН назив табелеОзначава табелу повезану са нашим окидачем.
ЗА СВАКИ РЕДОн нам само говори да ће се окидач извршити за сваки ред наше табеле претходно дефинисан у ОН.
Тхе завршни скл исказ или ће блок инструкција бити реченица или реченице које ће наш покретач извршити када ступи у акцију.
Покретање практичног примера
Сада ћемо видети практичан пример како програмирати окидач за продају аутобуских карата за одређену руту док има слободних места.
Можемо користити било који софтвер који прихвата окидаче и ускладиштене процесе.
1ст Правимо базу података:
2. по реду креирамо две табеле у нашој бази података. Један од њих је место где ћемо складиштити продате карте, а други је креиран тако да можемо знати колико је карата доступно за дато путовање.
Ево табеле која ће садржати информације о броју продатих карата:
Затим креирамо табелу у којој чувамо податке о броју улазница за свако конкретно путовање:
3рд Нов стварамо табелу за складиштење различитих путовања:
4. Након креирања базе података и табела, креираћемо СКЛ упит окидача, али пре тога морамо знати шта су НОВИ и СТАРИ идентификатори у окидачима.
Да би наш окидач био повезан са једном или више посебних колона табеле, морамо да користимо горе наведене идентификаторе НОВО И СТАРО.
СТАРО: означава стару вредност колоне
НОВА: нову вредност коју би могао узети.
Као пример: ОЛД.идтрип или НЕВ.идтрип.
Са ИНСЕРТ исказ Можемо користити само нови идентификатор јер са ИНСЕРТ функција која се генерише је увођење нових вредности у колону или колоне.
Ако користимо ДЕЛЕТЕ наредба у овом случају морамо користити ОЛД идентификатор јер са ДЕЛЕТЕ бришемо вредности које су већ постојале.
С друге стране, ако користимо УПДАТЕ наредба Можемо користити СТАРО и НОВО, јер се можемо позивати на старе или нове вредности јер ћемо изменити записе који су већ постојали за друге вредности.
Сада када разумемо идентификаторе, скл израз би изгледао овако:
Ако извршимо скл израз у програму који га подржава, то бисмо заиста видели окидач је креиран.
Да бисмо видели како то функционише, уводимо неке логичке вредности за путовање аутобусом, на пример:
Овде сам на путовању са идентификационим бројем 1 унео да има 45 слободних места.
Након тога продајемо карту, на пример карту која одговара месту 14:
Приликом постављања овог упита, ако одемо у поље цуррент_аваилабилити, видећемо да се 45 променило у 44, откако је активиран окидач 'упдате_аваилабилити'.
Тхе предности коришћења окидача је да се различити случајеви употребе могу програмирати и да се одржава интегритет базе података, односно даје нам могућност стварања рутина које аутоматски извршавају одређене радње без потребе да се то ради ручно. То би било веома валидно за валидацију било које врсте информација или за праћење кретања базе података.
Још један веома занимљив пример који сам управо поменуо у потврдама је одређивање пунолетства пре него што се изрекне реченица, на пример:
Након што смо видели примере стварања окидача, морамо знати како приступити информацијама о окидачу. За ово ћемо користити реченице:
Да бисте видели окидаче у нашој бази података:
ПОКАЖИТЕ ТРИГГЕРСС друге стране, ако желимо да видимо информације о покретачу који је тренутно креиран:
ПОКАЖИ ЦРЕАТЕ ТРИГГЕР студент_БУ_триггерКоначно, након што смо видели како се окидачи стварају и приказују, видећемо која се изјава користи за уклањање окидача који имамо у нашој бази података.
Да бисмо то урадили, морамо само да користимо типичну команду делете: кап.
ДРОП ТРИГГЕР [ИФ_ЕКСИСТС] триггер_намеДа ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен