36.2. ÐидимоÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в даннÑÑ
ÐÑли в ÑÑиггеÑной ÑÑнкÑии вÑполнÑÑÑÑÑ SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸ ÑÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº ÑаблиÑе, на коÑоÑÑÑ Ñоздан ÑÑиггеÑ, Ñо Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ знаÑÑ Ð¿Ñавила видимоÑÑи даннÑÑ , поÑÐ¾Ð¼Ñ ÑÑо они опÑеделÑÑÑ, бÑдÑÑ Ð»Ð¸ видеÑÑ ÑÑи SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² даннÑÑ , Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ ÑÑабоÑал ÑÑиггеÑ. ÐÑаÑко:
ТÑиггеÑÑ ÑÑÐ¾Ð²Ð½Ñ Ð¾Ð¿ÐµÑаÑоÑа ÑледÑÑÑ Ð¿ÑоÑÑÑм пÑавилам видимоÑÑи: никакие из изменений, ÑделаннÑÑ Ð¾Ð¿ÐµÑаÑоÑом, не Ð²Ð¸Ð´Ð½Ñ Ð² ÑÑиггеÑаÑ
BEFORE, Ñогда как в ÑÑиггеÑаÑAFTERÐ²Ð¸Ð´Ð½Ñ Ð²Ñе изменениÑ.Ðзменение даннÑÑ (вÑÑавка, обновление или Ñдаление), заÑÑавлÑÑÑее ÑÑабоÑаÑÑ ÑÑиггеÑ, не видно Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ SQL, вÑполнÑемÑÑ Ð² ÑÑиггеÑе
BEFOREÑÑÐ¾Ð²Ð½Ñ ÑÑÑоки, поÑÐ¾Ð¼Ñ ÑÑо ÑÑо изменение еÑÑ Ð½Ðµ пÑоизоÑло.Тем не менее, ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL, вÑполнÑемÑе в ÑÑиггеÑе
BEFOREÑÑÐ¾Ð²Ð½Ñ ÑÑÑоки, бÑдÑÑ Ð²Ð¸Ð´ÐµÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑÑÑÐ¾ÐºÐ°Ñ , коÑоÑÑе Ñже бÑли обÑабоÑÐ°Ð½Ñ Ð² ÑÑом опеÑаÑоÑе. ÐÑо ÑÑебÑÐµÑ Ð¾ÑÑоÑожноÑÑи, Ñак как поÑÑдок обÑабоÑки ÑÑÑок в Ñелом непÑедÑказÑемÑй; команда SQL, обÑабаÑÑваÑÑÐ°Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑÑÑок, Ð¼Ð¾Ð¶ÐµÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо в лÑбом поÑÑдке.ÐналогиÑно, ÑÑиггеÑ
INSTEAD OFÑÑÐ¾Ð²Ð½Ñ ÑÑÑоки ÑÐ²Ð¸Ð´Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ , внеÑÑннÑе пÑи пÑедÑдÑÑÐ¸Ñ Ð²ÑÐ·Ð¾Ð²Ð°Ñ ÑÑиггеÑаINSTEAD OFÐ´Ð»Ñ ÑÑой же внеÑней командÑ.Ðогда ÑÑабаÑÑÐ²Ð°ÐµÑ ÑÑиггеÑ
AFTERÑÑÐ¾Ð²Ð½Ñ ÑÑÑоки, вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑделаннÑе опеÑаÑоÑом Ñже вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ñ Ð¸ Ð²Ð¸Ð´Ð½Ñ Ð² вÑзÑваемой ÑÑиггеÑной ÑÑнкÑии.
ÐÑли ÑÑиггеÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð½Ð°Ð¿Ð¸Ñана на одном из ÑÑандаÑÑнÑÑ
пÑоÑедÑÑнÑÑ
ÑзÑков, вÑÑепÑиведÑннÑе ÑÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿ÑименимÑ, ÑолÑко еÑли ÑÑнкÑÐ¸Ñ Ð¾Ð±ÑÑвлена как VOLATILE. ФÑнкÑии обÑÑвленнÑе как STABLE или IMMUTABLE в лÑбом ÑлÑÑае не бÑдÑÑ Ð²Ð¸Ð´ÐµÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, ÑделаннÑÑ
вÑзÑваÑÑим опеÑаÑоÑом.
ÐополниÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ пÑÐ°Ð²Ð¸Ð»Ð°Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи даннÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ найÑи в Разделе 44.4. ÐÑÐ¸Ð¼ÐµÑ Ð² Разделе 36.4 ÑодеÑÐ¶Ð¸Ñ Ð´ÐµÐ¼Ð¾Ð½ÑÑÑаÑÐ¸Ñ ÑÑÐ¸Ñ Ð¿Ñавил.