48.13. pg_constraint
РкаÑалоге pg_constraint Ñ
ÑанÑÑÑÑ Ð¾Ð³ÑаниÑениÑ-пÑовеÑки, огÑаниÑениÑ-иÑклÑÑениÑ, а Ñакже огÑаниÑÐµÐ½Ð¸Ñ Ð¿ÐµÑвиÑного клÑÑа, ÑникалÑноÑÑи и внеÑниÑ
клÑÑей, опÑеделÑннÑе Ð´Ð»Ñ ÑаблиÑ. (ÐгÑаниÑÐµÐ½Ð¸Ñ ÑÑолбÑов опиÑÑваÑÑÑÑ ÐºÐ°Ðº и вÑе оÑÑалÑнÑе. ÐÑбое огÑаниÑение ÑÑолбÑа ÑавнознаÑно некоÑоÑÐ¾Ð¼Ñ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ ÑаблиÑÑ.) ÐгÑаниÑÐµÐ½Ð¸Ñ Ð½Ð° NULL пÑедÑÑавлÑÑÑÑÑ Ð½Ðµ здеÑÑ, а в каÑалоге pg_attribute.
ÐÐ»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкиÑ
ÑÑиггеÑов огÑаниÑений (ÑоздаваемÑÑ
командой CREATE CONSTRAINT TRIGGER) в ÑÑой ÑаблиÑе Ñакже ÑоздаÑÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑ.
ÐдеÑÑ Ñакже Ñ ÑанÑÑÑÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð².
ТаблиÑа 48.13. СÑолбÑÑ pg_constraint
| ÐÐ¼Ñ | Тип | СÑÑлки | ÐпиÑание |
|---|---|---|---|
oid | oid |  | ÐденÑиÑикаÑÐ¾Ñ ÑÑÑоки (ÑкÑÑÑÑй аÑÑибÑÑ; должен вÑбиÑаÑÑÑÑ Ñвно) |
conname | name |  | ÐÐ¼Ñ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ (не обÑзаÑелÑно ÑникалÑное!) |
connamespace | oid | | OID пÑоÑÑÑанÑÑва имÑн, ÑодеÑжаÑего ÑÑо огÑаниÑение |
contype | char |  | c = огÑаниÑение-пÑовеÑка (check), f = внеÑний клÑÑ (foreign key), p = пеÑвиÑнÑй клÑÑ (primary key), u = огÑаниÑение ÑникалÑноÑÑи (unique), t = ÑÑÐ¸Ð³Ð³ÐµÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ (trigger), x = огÑаниÑение-иÑклÑÑение (exclusion) |
condeferrable | bool |  | ЯвлÑеÑÑÑ Ð»Ð¸ огÑаниÑение оÑкладÑваемÑм? |
condeferred | bool |  | ЯвлÑеÑÑÑ Ð»Ð¸ огÑаниÑение оÑложеннÑм по ÑмолÑаниÑ? |
convalidated | bool |  | ÐÑло ли огÑаниÑение пÑовеÑено? РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð·Ð½Ð°Ñение false возможно ÑолÑко Ð´Ð»Ñ Ð²Ð½ÐµÑÐ½Ð¸Ñ ÐºÐ»ÑÑей и огÑаниÑений CHECK |
conrelid | oid | | ТаблиÑа, Ð´Ð»Ñ ÐºÐ¾ÑоÑой ÑÑÑановлено ÑÑо огÑаниÑение; 0, еÑли ÑÑо не огÑаниÑение ÑаблиÑÑ |
contypid | oid | | Ðомен, к коÑоÑÐ¾Ð¼Ñ Ð¾ÑноÑиÑÑÑ ÑÑо огÑаниÑение; 0, еÑли ÑÑо не огÑаниÑение домена |
conindid | oid | | ÐндекÑ, поддеÑживаÑÑий ÑÑо огÑаниÑение, еÑли ÑÑо огÑаниÑение ÑникалÑноÑÑи, пеÑвиÑного или внеÑнего клÑÑа, либо огÑаниÑение-иÑклÑÑение; в пÑоÑивном ÑлÑÑае â 0 |
confrelid | oid | | ÐÑли ÑÑо внеÑний клÑÑ, ÑаблиÑа, на коÑоÑÑÑ Ð¾Ð½ ÑÑÑлаеÑÑÑ; инаÑе 0 |
confupdtype | char |  | Ðод дейÑÑÐ²Ð¸Ñ Ð¿Ñи изменении внеÑнего клÑÑа: a = Ð½ÐµÑ Ð´ÐµÐ¹ÑÑвиÑ, r = огÑаниÑиÑÑ (restrict), c = каÑкадное дейÑÑвие (cascade), n = пÑиÑвоиÑÑ NULL, d = поведение по ÑмолÑÐ°Ð½Ð¸Ñ |
confdeltype | char |  | Ðод дейÑÑÐ²Ð¸Ñ Ð¿Ñи Ñдалении внеÑнего клÑÑа: a = Ð½ÐµÑ Ð´ÐµÐ¹ÑÑвиÑ, r = огÑаниÑиÑÑ (restrict), c = каÑкадное дейÑÑвие (cascade), n = пÑиÑвоиÑÑ NULL, d = поведение по ÑмолÑÐ°Ð½Ð¸Ñ |
confmatchtype | char |  | Тип ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑнего клÑÑа: f = полное (full), p = ÑаÑÑиÑное (partial), s = пÑоÑÑое (simple) |
conislocal | bool |  | ÐгÑаниÑение опÑеделено локалÑно в данном оÑноÑении. ÐамеÑÑÑе, ÑÑо огÑаниÑение Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð¿Ñеделено локалÑно и пÑи ÑÑом наÑледоваÑÑÑÑ. |
coninhcount | int4 |  | ЧиÑло пÑÑмÑÑ Ð¿Ñедков ÑÑого огÑаниÑениÑ. ÐгÑаниÑение Ñ Ð½ÐµÐ½ÑлевÑм ÑиÑлом пÑедков нелÑÐ·Ñ ÑдалиÑÑ Ð¸Ð»Ð¸ пеÑеименоваÑÑ. |
connoinherit | bool |  | ÐгÑаниÑение опÑеделено локалÑно Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ оÑноÑÐµÐ½Ð¸Ñ Ð¸ ÑвлÑеÑÑÑ Ð½ÐµÐ½Ð°ÑледÑемÑм. |
conkey | int2[] | | ÐÐ»Ñ Ð¾Ð³ÑаниÑений ÑаблиÑÑ (вклÑÑÐ°Ñ Ð²Ð½ÐµÑние клÑÑи, но не ÑÑиггеÑÑ Ð¾Ð³ÑаниÑений), опÑеделÑÐµÑ ÑпиÑок ÑÑолбÑов, обÑазÑÑÑÐ¸Ñ Ð¾Ð³ÑаниÑение |
confkey | int2[] | | ÐÐ»Ñ Ð²Ð½ÐµÑнего клÑÑа опÑеделÑÐµÑ ÑпиÑок ÑÑолбÑов, на коÑоÑÑе он ÑÑÑлаеÑÑÑ |
conpfeqop | oid[] | | ÐÐ»Ñ Ð²Ð½ÐµÑнего клÑÑа â ÑпиÑок опеÑаÑоÑов ÑавенÑÑва Ð´Ð»Ñ ÑÑавнений PK = FK |
conppeqop | oid[] | | ÐÐ»Ñ Ð²Ð½ÐµÑнего клÑÑа â ÑпиÑок опеÑаÑоÑов ÑавенÑÑва Ð´Ð»Ñ ÑÑавнений PK = PK |
conffeqop | oid[] | | ÐÐ»Ñ Ð²Ð½ÐµÑнего клÑÑа â ÑпиÑок опеÑаÑоÑов ÑавенÑÑва Ð´Ð»Ñ ÑÑавнений FK = FK |
conexclop | oid[] | | ÐÐ»Ñ Ð¾Ð³ÑаниÑениÑ-иÑклÑÑÐµÐ½Ð¸Ñ â ÑпиÑок опеÑаÑоÑов иÑклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑÑолбÑам |
conbin | pg_node_tree |  | ÐÐ»Ñ Ð¾Ð³ÑаниÑениÑ-пÑовеÑки â внÑÑÑеннее пÑедÑÑавление вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ |
consrc | text |  | ÐÐ»Ñ Ð¾Ð³ÑаниÑениÑ-пÑовеÑки â понÑÑное ÑÐµÐ»Ð¾Ð²ÐµÐºÑ Ð¿ÑедÑÑавление вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ |
Ð ÑлÑÑае Ñ Ð¾Ð³ÑаниÑением-иÑклÑÑением знаÑение conkey полезно ÑолÑко Ð´Ð»Ñ ÑлеменÑов огÑаниÑений, пÑедÑÑавлÑÑÑиÑ
пÑоÑÑÑе ÑÑÑлки на ÑÑолбÑÑ. ÐÐ»Ñ Ð´ÑÑгиÑ
ÑлÑÑаев в conkey задаÑÑÑÑ Ð½Ð¾Ð»Ñ, и ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð²ÑÑажение, опÑеделÑÑÑее огÑаниÑение, надо обÑаÑиÑÑÑÑ Ðº ÑооÑвеÑÑÑвÑÑÑÐµÐ¼Ñ Ð¸Ð½Ð´ÐµÐºÑÑ. (Таким обÑазом, поле conkey Ð¸Ð¼ÐµÐµÑ Ñо же ÑодеÑжимое, ÑÑо и pg_index.indkey Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑа.)
ÐÑимеÑание
Ðоле consrc не менÑеÑÑÑ Ð¿Ñи изменении задейÑÑвованнÑÑ
в вÑÑажении обÑекÑов; напÑимеÑ, в нÑм не оÑÑлеживаеÑÑÑ Ð¿ÐµÑеименование ÑÑолбÑов. ÐоÑÑÐ¾Ð¼Ñ Ð»ÑÑÑе не полагаÑÑÑÑ Ð½Ð° него, а воÑполÑзоваÑÑÑÑ ÑÑнкÑией pg_get_constraintdef(), ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¾Ð¿Ñеделение огÑаниÑениÑ-пÑовеÑки.
ÐÑимеÑание
Ðоле pg_class.relchecks должно ÑоглаÑовÑваÑÑÑÑ Ñ ÑиÑлом огÑаниÑений-пÑовеÑок, опиÑаннÑÑ
в данной ÑаблиÑе Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑноÑениÑ.