Database Programming & Design



         

В DB2 поддерживаются следующие типы ограничений: - часть 2


доступа производится от имени создателя триггера, а не того

пользователя, оператор которого активизировал триггер. Это

позволяет создателю триггера "инкапсулировать" некоторые

привилегии в формы, доступные менее привилегированным

пользователям.

Рассмотрим, например, каким образом триггер может автоматически

поддерживать столбец данных. Предположим, что база данных

содержит таблицу STOCKS со столбцами SYMBOL, PRICE и HIGHPRICE.

Текущая цена всегда поддерживается в столбце PRICE. Можно

захотеть, чтобы при изменении текущей цены в столбце HIGHPRICE

всегда оказывалось ее максимальное значение. Этого можно достичь

путем создания следующего триггера:

CREATE TRIGGER stockhigh

NO CASCADE BEFORE UPDATE ON stocks

REFERENCING NEW AS newrow

FOR EACH ROW MODE DB2SQL

WHEN (newrow.highprice IS NULL OR

newrow.price > newrow.highprice)

SET newrow.highprice = newrow.price;




Содержание  Назад  Вперед