Дерекқор оқиғаларына байланысты
триггер келесі оқиғаларда
шақырылуы мҥмкін:
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
Достарыңызбен бөлісу: