Trigger

Trigger

Три́ггер (англ. trigger) — это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события (действием) — по сути добавлением INSERT или удалением DELETE строки в заданной таблице, или модификации UPDATE данных в определенном столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.

Момент запуска триггера определяется с помощью ключевых слов BEFORE (триггер запускается до выполнения связанного с ним события; например, до добавления записи) или AFTER (после события). В случае, если триггер вызывается до события, он может внести изменения в модифицируемую событием запись (конечно, при условии, что событие — не удаление записи). Некоторые СУБД накладывают ограничения на операторы, которые могут быть использованы в триггере (например, может быть запрещено вносить изменения в таблицу, на которой «висит» триггер, и т. п.)

Кроме того, триггеры могут быть привязаны не к таблице, а к представлению (VIEW). В этом случае с их помощью реализуется механизм «обновляемого представления». В этом случае ключевые слова BEFORE и AFTER влияют лишь на последовательность вызова триггеров, так как собственно событие (удаление, вставка или обновление) не происходит.

В некоторых серверах триггеры могут вызываться не для каждой модифицируемой записи, а один раз на изменение таблицы. Такие триггеры называются табличными.

Пример (Oracle):

 /* Триггер на уровне таблицы */
 CREATE OR REPLACE TRIGGER tr2
 AFTER UPDATE ON rayon
 BEGIN 
  INSERT INTO info VALUES ('table "rayon" has changed');
 END;

В этом случае для отличия табличных триггеров от строчных вводится дополнительные ключевые слова при описании строчных триггеров. В Oracle это словосочетание FOR EACH ROW.

Пример:


 /* Триггер на уровне строки */
 CREATE OR REPLACE TRIGGER tr1
 AFTER UPDATE ON rayon FOR EACH ROW
 BEGIN 
  INSERT INTO info VALUES ('one string in table "rayon" has changed');
 END;

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Trigger" в других словарях:

  • Trigger — may refer to: * Trigger (firearms), a mechanism that actuates the firing of firearms * Trigger pad, a device used in electronic percussion * Image trigger, a device used in highspeed cameras * Schmitt trigger, an electronic circuit * USS Trigger… …   Wikipedia

  • Trigger (EP) — Trigger EP de In Flames Publicación 10 de Junio del 2003 Género(s) Death metal melódico Duración 17:26 Discográfica Nuclear Blast …   Wikipedia Español

  • trigger — TRÍGGER s.n. Circuit electronic cu două stări distincte a cărui declanşare se face prin impuls exterior. [pr.: trígăr] – cuv. engl. Trimis de LauraGellner, 01.07.2004. Sursa: DEX 98  TRÍGGER s.n. 1. (fiz.) Triodă cu catod rece, servind ca releu… …   Dicționar Român

  • trigger — [tʀigœʀ; tʀigɛʀ] n. m. ÉTYM. 1968, Larousse; mot angl., « déclenchement », du néerl. trekker. ❖ ♦ Anglicisme. 1 Techn. Déclencheur, dans une machine à calculer électronique. 2 Méd …   Encyclopédie Universelle

  • trigger — (n.) 1650s, earlier tricker (1620s), from Du. trekker trigger, from trekken to pull (see TREK (Cf. trek)). Tricker was the usual form in English until c.1750. The verb is first recorded 1930, from the noun. Trigger happy is attested from 1943 …   Etymology dictionary

  • trigger — [trig′ər] n. [earlier tricker < Du trekker < trekken, to draw, pull: see TREK] 1. a small lever or part which when pulled or pressed releases a catch, spring, etc. 2. in firearms, a small lever pressed back by the finger to activate the… …   English World dictionary

  • Trigger — Trig ger, n. [For older tricker, from D. trekker, fr. trekken to draw, pull. See {Trick}, n.] 1. A catch to hold the wheel of a carriage on a declivity. [1913 Webster] 2. (Mech.) A piece, as a lever, which is connected with a catch or detent as a …   The Collaborative International Dictionary of English

  • trigger — index launch (initiate), originate Burton s Legal Thesaurus. William C. Burton. 2006 …   Law dictionary

  • trigger — / trigə/, it. / trig:er/ s. ingl. [propr. grilletto , der. di (to ) trig bloccare ], usato in ital. al masch. (elettron.) [segnale di comando di dispositivi elettronici] ▶◀ scatto …   Enciclopedia Italiana

  • trigger —  Trigger  Триггер (двоичный, двухуровневый)   Электронная логическая схема на двух двухуровневых элементах с положительной обратной связью, имеющая два устойчивых состояния единичное и нулевое, которые обозначаются соответственно 1 и 0. Такое… …   Толковый англо-русский словарь по нанотехнологии. - М.

  • trigger — The verb has inflected forms triggered, triggering …   Modern English usage


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»