Оқулық «Білім беруді дамытудың федералды институты»



Pdf көрінісі
бет210/246
Дата27.09.2023
өлшемі4.61 Mb.
#478892
түріОқулық
1   ...   206   207   208   209   210   211   212   213   ...   246
Г. Н. Федорова, Деректер қорын әзірлеу және басқару. Оқулық. Мәскеу «Академия» баспа орталығы, 2015ж.

274
 


Дерекқор оқиғаларына байланысты триггер келесі оқиғаларда 
шақырылуы мҥмкін:
1) дерекқорға (CONNECT) қосылса, триггер орындалмас бҧрын, 
әдепкі бойынша операция автоматты тҥрде басталады; 
2) дерекқордан (DISCONNECT) ажыратылса, триггер орындалмас 
бҧрын әдепкі транзакция басталады; 
3) транзакция басталған кезде (TRANSACTION START), триггер 
осы мәміленің контексінде орындалады; 
4) мәміле расталған кезде (TRANSACTION COMMIT), триггер осы 
мәміленің контексінде орындалады; 
5) мәміле бҧзылған кезде (TRANSACTION ROLLBACK), триггер 
операция мәмілесі бойынша орындалады.
Бір кесте (кӛрініс) ҥшін, бір фаза және бір оқиға ҥшін, сондай-ақ бір 
фаза және бірнеше оқиғалар ҥшін автоматты тҥрде шақырылатын 
триггерлер жасауыңызға болады. 
Егер бір кестеге (кӛрініске), бір оқиғаның және бір фазаның 
бірнеше триггерлері бар болса, оларды орындау тізбегін кӛрсете 
аласыз, осы тізбектегі триггер позициясын кӛрсете аласыз. 
Триггер жасау ҥшін, синтаксисі тӛменде кӛрсетілген CREATE 
TRIGGER операторын пайдаланыңыз:
CREATE TRIGGER < триггер атауы>
[ACTIVE | INACTIVE}
{ ON <деректер қорының әрекеті>
| FOR {<кесте атауы> | <кӛрініс атауы>}
{BEFORE | AFTER}
<кесте әрекеті (кӛрініс)>
[OR <кесте әрекеті (кӛрініс)>] . . .
| {BEFORE | AFTER}
< кесте әрекеті (кӛрініс)>
[OR < кесте әрекеті (кӛрініс)>] . . .
ON {<кесте атауы> | <кӛрініс атауы>}
}
[POSITION <бҥтін>]
AS <триггер ағзасы>;
< кесте әрекеті (кӛрініс)> ::=
{INSERT | UPDATE | DELETE}
<деректер қорының әрекеті> : : =
{ CONNECT | 
DISCONNECT | 
TRANSACTION START
275
 


| TRANSACTION COMMIT | TRANSACTION 
ROLLBACK }
Триггер белсенді (ACTIVE) немесе белсенді емес (IN-ACTIVE) 
болуы мҥмкін. Егер триггер белсенді (әдепкі мән) болса, ол кестенің 
немесе дерекқордың сәйкес оқиғасы (лері) болғанда автоматты тҥрде 
шақырылады. Триггер белсенді емес болса, триггер пайда болмайды. 
Триггердің дене қҧрылымы:
[<жергілікті ҥздіксіз хабарламасы>]
BEGIN
<оператор>
[<оператор> ... ]
END
Триггері органға жергілікті айнымалылар сипаттамасы кейін ирек 
жақша Қоса беріліп отырған есептілігіне BEGIN және END блок болуы 
тиіс. 
Триггерлер ҥшін OLD және NEW нақты контекстік айнымалылар 
бар. Осы кілт сӛздердің неғҧрлым дҧрыс атауы - баған атауы префикс. 
триггерлер және ӛзгерту (Баған атауының алдында жаңа және нҥктесін 
орналасқан) кейін (осы кілт сӛз ескі және нҥкте Баған атауының 
алдында қойылады ҥшін) клиент оны ӛзгерту ҥшін кесте кез келген 
бағанының (қарау) мәнін кіре аласыз. 
Триггерлер барлық тҥрлері ҥшін айнымалы контекстен OLD (баған 
префикс) айнымалы тек оқу болып табылады. Бҧл қарамастан фазалық 
оқиғалардың, деректерді қосу кезінде туындаған триггерлер қол 
жетімді. 
(Кейін) 
фаза оқиғалар ҥшін триггерлер жаңа контекст 
айнымалылар, сондай-ақ айнымалы тек оқу болып табылады. 
Деректерді жою оқиғасы ҥшін триггерлерде қол жетімді емес. 
OLD мәні. Бағанның атауы - мҥмкін болатын ӛзгерістерді жасамас 
бҧрын жасалған бағанның кҥйіне сілтеме жасауға мҥмкіндік береді. 
Мән NEW. Бағанның атауы - мҥмкін ӛзгерістерді жасағаннан кейін 
бағанның жағдайына сілтеме жасауға мҥмкіндік береді.
Мысалы:
CREATE TRIGGER BU_TOVARY FOR 
TOVARY ACTIVE
BEFORE UPDATE AS


Достарыңызбен бөлісу:
1   ...   206   207   208   209   210   211   212   213   ...   246




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет