49.56. pg_trigger
РкаÑалоге pg_trigger Ñ
ÑанÑÑÑÑ ÑÑиггеÑÑ Ð´Ð»Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ пÑедÑÑавлений. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº опиÑÐ°Ð½Ð¸Ñ CREATE TRIGGER.
ТаблиÑа 49.56. СÑолбÑÑ pg_trigger
| ÐÐ¼Ñ | Тип | СÑÑлки | ÐпиÑание |
|---|---|---|---|
oid | oid |  | ÐденÑиÑикаÑÐ¾Ñ ÑÑÑоки (ÑкÑÑÑÑй аÑÑибÑÑ; должен вÑбиÑаÑÑÑÑ Ñвно) |
tgrelid | oid | | ТаблиÑа, к коÑоÑой оÑноÑиÑÑÑ ÑÑÐ¾Ñ ÑÑÐ¸Ð³Ð³ÐµÑ |
tgname | name |  | ÐÐ¼Ñ ÑÑиггеÑа (должно бÑÑÑ ÑникалÑнÑм ÑÑеди ÑÑиггеÑов одной ÑаблиÑÑ) |
tgfoid | oid | | ÐÑзÑÐ²Ð°ÐµÐ¼Ð°Ñ ÑÑнкÑÐ¸Ñ |
tgtype | int2 |  | ÐиÑÐ¾Ð²Ð°Ñ Ð¼Ð°Ñка, задаÑÑÐ°Ñ ÑÑÐ»Ð¾Ð²Ð¸Ñ ÑÑабаÑÑÐ²Ð°Ð½Ð¸Ñ ÑÑиггеÑа |
tgenabled | char |  | УÑÑанавливаеÑ, в какиÑ
ÑежимаÑ
session_replication_role ÑÑабаÑÑÐ²Ð°ÐµÑ ÑÑиггеÑ: O = ÑÑÐ¸Ð³Ð³ÐµÑ ÑÑабаÑÑÐ²Ð°ÐµÑ Ð² ÑежимаÑ
«origin» (иÑÑоÑник) и «local» (локалÑно), D = ÑÑÐ¸Ð³Ð³ÐµÑ Ð¾ÑклÑÑÑн, R = ÑÑÐ¸Ð³Ð³ÐµÑ ÑÑабаÑÑÐ²Ð°ÐµÑ Ð² Ñежиме «replica» (Ñеплика), A = ÑÑÐ¸Ð³Ð³ÐµÑ ÑÑабаÑÑÐ²Ð°ÐµÑ Ð²Ñегда. |
tgisinternal | bool |  | True, еÑли ÑÑÐ¸Ð³Ð³ÐµÑ Ñоздан внÑÑÑи ÑиÑÑÐµÐ¼Ñ (обÑÑно, Ð´Ð»Ñ ÑеализаÑии огÑаниÑениÑ, заданного в tgconstraint) |
tgconstrrelid | oid | | ТаблиÑа, задейÑÑÐ²Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð² огÑаниÑении ÑÑÑлоÑной ÑелоÑÑноÑÑи |
tgconstrindid | oid | | ÐндекÑ, поддеÑживаÑÑий огÑаниÑение ÑникалÑноÑÑи, пеÑвиÑного клÑÑа или ÑÑÑлоÑной ÑелоÑÑноÑÑи, либо огÑаниÑение-иÑклÑÑение |
tgconstraint | oid | | ÐапиÑÑ Ð² pg_constraint, ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ ÑÑим ÑÑиггеÑом, еÑли ÑÐ°ÐºÐ°Ñ Ð¸Ð¼ÐµÐµÑÑÑ |
tgdeferrable | bool |  | True, еÑли ÑÑÐ¸Ð³Ð³ÐµÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ ÑвлÑеÑÑÑ Ð¾ÑкладÑваемÑм |
tginitdeferred | bool |  | True, еÑли ÑÑÐ¸Ð³Ð³ÐµÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð¸Ð·Ð½Ð°ÑалÑно оÑложеннÑй |
tgnargs | int2 |  | ЧиÑло аÑгÑменÑов, пеÑедаваемÑÑ ÑÑнкÑии ÑÑиггеÑа |
tgattr | int2vector | | ÐомеÑа ÑÑолбÑов, еÑли ÑÑÐ¸Ð³Ð³ÐµÑ Ð¿ÑивÑзан к ÑÑолбÑам; в пÑоÑивном ÑлÑÑае пÑÑÑой маÑÑив |
tgargs | bytea |  | ÐÑгÑменÑÑ ÑÑÑокового Ñипа, пеÑедаваемÑе ÑÑиггеÑÑ, Ñ NULL в конÑе каждого |
tgqual | pg_node_tree |  | ÐеÑево вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (в пÑедÑÑавлении nodeToString()) Ð´Ð»Ñ ÑÑÐ»Ð¾Ð²Ð¸Ñ ÑÑиггеÑа WHEN, либо NULL, еÑли оно оÑÑÑÑÑÑвÑÐµÑ |
tgoldtable | name |  | ÐÑедложение REFERENCING Ð´Ð»Ñ OLD TABLE или NULL в ÑлÑÑае его оÑÑÑÑÑÑÐ²Ð¸Ñ |
tgnewtable | name |  | ÐÑедложение REFERENCING Ð´Ð»Ñ NEW TABLE или NULL в ÑлÑÑае его оÑÑÑÑÑÑÐ²Ð¸Ñ |
РнаÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑиггеÑÑ, пÑивÑзаннÑе к ÑÑолбÑам, поддеÑживаÑÑÑÑ ÑолÑко Ð´Ð»Ñ ÑобÑÑий UPDATE, Ñак ÑÑо tgattr пÑименимо ÑолÑко к ÑобÑÑиÑм Ñакого Ñипа. Ðоле tgtype Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð±Ð¸ÑÑ Ð¸ Ð´Ð»Ñ Ð´ÑÑгиÑ
Ñипов ÑобÑÑий, но они ÑаÑпÑоÑÑÑанÑÑÑÑÑ ÑолÑко на ÑаблиÑÑ, вне завиÑимоÑÑи Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ tgattr.
ÐÑимеÑание
Ðогда tgconstraint ÑодеÑÐ¶Ð¸Ñ Ð½Ðµ нолÑ, Ñо еÑÑÑ ÑÑÑлаеÑÑÑ Ð½Ð° запиÑÑ Ð² pg_constraint, Ð¿Ð¾Ð»Ñ tgconstrrelid, tgconstrindid, tgdeferrable и tginitdeferred по болÑÑÐ¾Ð¼Ñ ÑÑÑÑÑ Ð¸Ð·Ð±ÑÑоÑнÑ, они повÑоÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² ÑÑой запиÑи. Ðднако возможно ÑвÑзаÑÑ Ð½ÐµÐ¾ÑкладÑваемÑй ÑÑÐ¸Ð³Ð³ÐµÑ Ñ Ð¾ÑкладÑваемÑм огÑаниÑением: Ñ Ð¾Ð³ÑаниÑениÑми внеÑнего клÑÑа могÑÑ Ð±ÑÑÑ ÑвÑÐ·Ð°Ð½Ñ Ð¸ оÑкладÑваемÑе, и неоÑкладÑваемÑе ÑÑиггеÑÑ.
ÐÑимеÑание
ÐÑли Ð´Ð»Ñ Ð¾ÑноÑÐµÐ½Ð¸Ñ ÐµÑÑÑ ÐºÐ°ÐºÐ¸Ðµ-либо ÑÑиггеÑÑ Ð² ÑÑом каÑалоге, знаÑением pg_class.relhastriggers Ð´Ð»Ñ Ð½ÐµÑ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ true.