45.5. ТÑиггеÑнÑе ÑÑнкÑии #
Ðогда ÑÑнкÑÐ¸Ñ Ð¸ÑполÑзÑеÑÑÑ ÐºÐ°Ðº ÑÑиггеÑ, ÑловаÑÑ TD ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°ÑениÑ, ÑвÑзаннÑе Ñ ÑабоÑой ÑÑиггеÑа:
TD["event"]ÑодеÑÐ¶Ð¸Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ ÑобÑÑÐ¸Ñ Ð² виде ÑÑÑоки:
INSERT,UPDATE,DELETEилиTRUNCATE.TD["when"]ÑодеÑÐ¶Ð¸Ñ Ð¾Ð´Ð½Ñ Ð¸Ð· ÑÑÑок:
BEFORE,AFTERилиINSTEAD OF.TD["level"]ÑодеÑжиÑ
ROWилиSTATEMENT.TD["new"]TD["old"]ÐÐ»Ñ ÑÑиггеÑа ÑÑÐ¾Ð²Ð½Ñ ÑÑÑоки одно или оба ÑÑÐ¸Ñ Ð¿Ð¾Ð»Ñ ÑодеÑÐ¶Ð°Ñ ÑооÑвеÑÑÑвÑÑÑие ÑÑÑоки ÑÑиггеÑа, в завиÑимоÑÑи Ð¾Ñ ÑобÑÑÐ¸Ñ ÑÑиггеÑа.
TD["name"]ÑодеÑÐ¶Ð¸Ñ Ð¸Ð¼Ñ ÑÑиггеÑа.
TD["table_name"]ÑодеÑÐ¶Ð¸Ñ Ð¸Ð¼Ñ ÑаблиÑÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑой ÑÑабоÑал ÑÑиггеÑ.
TD["table_schema"]ÑодеÑÐ¶Ð¸Ñ ÑÑ ÐµÐ¼Ñ ÑаблиÑÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑой ÑÑабоÑал ÑÑиггеÑ.
TD["relid"]ÑодеÑÐ¶Ð¸Ñ OID ÑаблиÑÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑой ÑÑабоÑал ÑÑиггеÑ.
TD["args"]ÐÑли в команде
CREATE TRIGGERзадавалиÑÑ Ð°ÑгÑменÑÑ, Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ полÑÑиÑÑ ÐºÐ°Ðº ÑлеменÑÑ Ð¼Ð°ÑÑива ÑTD["args"][0]поTD["args"][.n-1]
ÐÑли в TD["when"] пеÑедано BEFORE или INSTEAD OF, а в TD["level"] â ROW, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе веÑнÑÑÑ Ð·Ð½Ð°Ñение None или "OK" из ÑÑнкÑии Python, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑ, ÑÑо ÑÑÑока не бÑла изменена, знаÑение "SKIP", ÑÑÐ¾Ð±Ñ Ð¿ÑеÑваÑÑ ÑобÑÑие, либо, еÑли в TD["event"] пеÑедана команда INSERT или UPDATE, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе веÑнÑÑÑ "MODIFY", ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑ, ÑÑо Ð½Ð¾Ð²Ð°Ñ ÑÑÑока бÑла изменена. Ðо вÑеÑ
дÑÑгиÑ
ÑлÑÑаÑÑ
возвÑаÑаемое знаÑение игноÑиÑÑеÑÑÑ.