BEGIN
IF (OLD. TOVAR<>NEW. TOVAR)
THEN UPDATE PRODAJA SET
TOVAR=NEW.TOVAR WHERE
TOVAR=OLD.TOVAR;
END
Осы мысалда триггер TOVAR бағанының TOVAR кестесінің
жазбасындағы өзгерген болса, PRODAJA кестесіне сәйкес өзгертулер
жасайды.
Бірнеше кесте (көрініс) оқиғалары немесе бірнеше дерекқор
оқиғалары үшін бір триггер жасай алмайды.
Қолданыстағы триггер оператор ALTER TRIGGER пайдаланып
тақырыбын және / немесе орган өзгерту үшін.
Оператор өз қызметін мемлекеттік (белсенді / белсенді емес),
кестенің оқиғаны (лар) (өнімділігі) мен іс-шараның кезеңін, триггер
орнын өзгерту және орындалатын іс-әрекеттерді іске қосу үшін
шүріппесін өзгертуге болады.
Бар триггерлерді жою үшін операторды пайдаланады.
DROP TRIGGER <триггер атауы>
Трафиктер дерекқор деректерін өзгерткенде әртүрлі әрекеттерді
орындау кезінде пайдалы құрал болып табылады. негізгі мақсаты
деректер өзгерістерге қатысты хабарларды беру жасанды бастапқы кілт
мәндері, дерекқор ақпаратты қалыптастыру автоматты орындау
функциясын іске қосу үшін кейбір дерекқор ақпарат (өзгерту) қосқанда,
деректер тұтастығын және декларативтік қолдау үшін нақты әдістер
белгілі бір әрекеттерді орындау. Мәміленің дерекқор қосылымы,
деректер базасынан ажыратып, іске қосу, растау немесе жою - іс-шара
тұтас ретінде деректер базасымен байланысты кезінде триггерлер,
сондай-ақ пайдалануға болады.
12.5.3.
Сақталатын іс әрекеттермен
жұмыс
Сақталған процедура, сондай-ақ триггер - дерекқордың
метадеректер аймағында сақталған және сервер жағында іске қосылған
бағдарлама. Триггерден айырмашылығы, сақталатын процедуралар,
сақталған процедуралар, триггерлер және клиент бағдарламалары
сақталған процедураға қол жеткізе алады. Рекурсия рұқсат етіледі -
277
рәсім өздігінен қолданылуы мүмкін. Сақталған процедуралар шалу
бағдарламалары сияқты бір транзакция контексінде орындалады.
Сақталған процедуралардың екі түрі бар - орындалатын сақталатын
процедуралар және сақталған процедуралар болып саналады.
Орындалатын сақталатын процедуралар дерекқорда деректерді
өңдеуді немесе дерекқормен байланыстырылмайды. Бұл процедуралар
енгізу параметрлерін ала алады және шығыс параметрлерін қайтарады.
Орындалатын сақталатын процедураларға қол жеткізу SQL EXECUTE
PROCEDURE операторын орындау кезінде орындалады.
Сақталған іріктеу процедуралары, әдетте, қабылданған жолдардың
ерікті санын қайтара отырып, дерекқордан деректерді алуды жүзеге
асырады. Таңдау процедуралары енгізу параметрлерін де ала алады.
Әрбір келесі оқу сызығының мәні шығыс параметрлеріндегі қоңырау
бағдарламасына қайтарылады. Бұл процедураның орындалуын уақытша
тоқтатып, таңдалған деректерді қоңырау шалу бағдарламасына
сақталған процедураға жіберу үшін SUSPEND операторын
пайдаланыңыз. Сақталған іріктеу процедурасына қол жеткізу SELECT
нұсқауы арқылы жүзеге асырылады.
Синтаксистік түрде, сақталатын процедураны сақтайтын
процедураны жасау ешқандай айырмашылығы жоқ. Сақталған рәсімді
жасау үшін, синтаксисі төменде көрсетілген CREATE PROCEDURE
операторын пайдаланылады:
CREATE PROCEDURE <
сақталатын шаралар атауы>
[(<
кіріс параметрлер тізімі>)]
[RETURNS (<
шығыс параметрлер тізімі>)]
AS
[<
ауыспалы хабарламалар тізімі>]
BEGIN <
операторлар блогы>END
Сақталған процедура шақырылатын бағдарламадан енгізу
параметрлерін қабылдай алады. Параметрлер мәнмен қабылданады,
яғни кіріс параметрлерінің мәндеріндегі кез келген өзгерістер
шақырылған бағдарламада осы параметрлердің мәндеріне әсер етпейді.
Енгізу параметрлерін әдепкі мән берілуі мүмкін. Әдепкі мәндер
орнатылатын параметрлер тізімнің ең соңында болуы керек. Егер кіріс
параметрі DEFAULT сөйлемінде әдепкі мән берілген доменге
негізделген болса, жаңа әдепкі мән домен сипаттамасында көрсетілгенді
қайта анықтайды.
278
Сақталған процедура шығыс параметрлерінің ерікті санын шақыру
бағдарламасына қайтара алады. Параметр үшін домен атауын
көрсетсеңіз, процедураның жергілікті айнымалысы болса, сол доменнің
барлық сипаттамалары көшіріледі. Сақталған процедураның денесінде
жергілікті айнымалылардың ерікті саны сипатталуы мүмкін.
Сақталған рәсімнің енгізу параметрлері тізімі сақталған
процедураның атауынан кейін жазылады және жақшаға салынған:
<Кіріс параметрлері тізімі> :: = (<параметр сипаттамасы> [,
<параметр сипаттамасы] ...)
Шығу параметрлері RETURNS ішінде сипатталған:
RETURNS (<
шығыс параметрлерінің тізімі>)
Шығу параметрінің сипаттамасы кіріс параметрінің сипаттамасына
сәйкес келеді.
Триггерлер мен рәсімдердің жергілікті параметрлері, сақталатын
процедураларда ғана қолданылатын енгізу және шығару параметрлері
ішкі айнымалылар болып табылады. Ішкі айнымалылардың атаулары
пайдаланылатын дерекқор кестелерінің баған атаулары сияқты болуы
мүмкін. Бұл атаулардың белгісіздігіне себеп болмайды. SELECT ішкі
айнымалылар пайдаланған кезде кестеде бағандардың атаулары оларды
шатастырмау ретінде емес, сондықтан, INSERT есептілігі UPDATE
немесе ішкі айнымалылардың аттары DELETE әрқашан, нүкте алдында
болуы тиіс. Барлық басқа жағдайларда, кез келген басқа да операторлар
ішкі айнымалылар аттары қос нүктесіз әдеттегі жолмен жазылған.
Ішкі айнымалының мәнін тағайындау синтаксисі келесідей:
<
айнымалы атауы> = <мағынасы>;
Өрнектің кез келген дұрыс SQL өрнегі болуы мүмкін.
EXIT мәлімдемесі триггердің кез-келген нүктесінен немесе
сақталған процедураны түпкілікті END сөзіне өтуге мүмкіндік береді,
яғни бағдарламаның орындалуын тоқтату:
EXIT [<
белгі>]
SUSPEND мәлімдемесі сақталатын процедураның орындалуын
уақытша тоқтатады (жиі кестенің көптеген жолдарын таңдайтын
SELECT
нұсқауы бар рәсім, мұндай рәсімге қол жеткізу ақ орындалады
279
Достарыңызбен бөлісу: |