Учебное пособие Для студентов университетов Специальностей «Информатика», «Прикладная математика»



Pdf көрінісі
бет148/177
Дата15.02.2022
өлшемі2,58 Mb.
#25567
түріУчебное пособие
1   ...   144   145   146   147   148   149   150   151   ...   177
Триггерные предикаты. 
Если в триггере указывается совокупность 
активизирующих  триггер DML-операторов  (например, INSERT OR DE-
LETE), то для распознавания того, какой конкретно из DML-операторов 
выполняется  над  связанной  с  триггером  таблицей,  используются  триг-
герные предикаты: INSERTING, DELETING, UPDATING. Они представ-
ляют собой логические функции, возвращающие TRUE, если тип активи-
зирующего оператора совпадает с типом предиката, и FALSE – в против-
ном случае. Для задания одних и тех же действий в случае выполнения 
различных DML-операторов в условном операторе триггерные предика-
ты объединяются с помощью логических операций. 
Псевдозаписи. 
Для  строковых  триггеров  существуют  специальные 
конструкции, которые позволяют при выполнении DML-операторов над 
строкой  таблицы  обращаться  как  к  старым  значениям,  которые  находи-
лись  в  ней  до  модификации,  так  и  к  новым,  которые  появятся  в  строке 
после  ее  модификации.  Эти конструкции  называются  псевдозаписями  и 
обозначаются old и new. Структура этих псевдозаписей идентична струк-
туре  строки  модифицируемой  таблицы,  но  оперировать  можно  только 
отдельными  полями  псевдозаписи.  Обращение  к  полям  псевдозаписи 
происходит  по  следующей  схеме:  перед old или new ставится  символ 
двоеточие (:), далее  через  точку  указывается  название  поля.  Значения, 
которые  принимают  поля  псевдозаписи  при  выполнении  активизирую-
щих  
DML-операторов, определяются следующим образом. 
1.  Оператор INSERT – псевдозапись :new  эквивалентна вставляемой 
строке, а псевдозапись :old во всех полях имеет значение NULL. 
2.  Оператор DELETE – псевдозапись :old эквивалентна  удаляемой 
строке, а псевдозапись :new во всех полях имеет значение NULL. 
3.  Оператор UPDATE – псевдозапись :new  эквивалентна строке, по-
лученной  в  результате  модификации,  а  псевдозапись :old во  всех  полях 
имеет исходное значение строки. 
 
165


 


Достарыңызбен бөлісу:
1   ...   144   145   146   147   148   149   150   151   ...   177




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

    Басты бет