?
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
pg_constraint存儲(chǔ)表上的檢查約束、主鍵、唯一約束和外鍵約束。字段約束不會(huì)得到特殊對(duì)待。 每個(gè)字段約束都等效于某些表約束。非空約束記錄在pg_attribute目錄中,不是這。
用戶定義的約束觸發(fā)器(創(chuàng)建CREATE CONSTRAINT TRIGGER)也引起本表中的條目。
在域上面的檢查約束也存儲(chǔ)在這里。
Table 45-12. pg_constraint Columns
名稱 | 類型 | 引用 | 描述 |
---|---|---|---|
conname | name | ? | 約束名(不必是唯一的) |
connamespace | oid | pg_namespace.oid | 包含這個(gè)約束的名字空間的OID |
contype | char | ? | c = 檢查約束, f = 外鍵約束, p = 主鍵約束, u = 唯一約束 t = 約束觸發(fā)器 x = 排斥約束 |
condeferrable | bool | ? | 這個(gè)約束可以推遲嗎? |
condeferred | bool | ? | 缺省時(shí)這個(gè)約束是否推遲的? |
conrelid | oid | pg_class.oid | 這個(gè)約束所在的表;如果不是表約束則為0 |
contypid | oid | pg_type.oid | 這個(gè)約束所在的域;如果不是一個(gè)域約束則為0 |
conindid | oid | pg_class.oid | 如果它是獨(dú)特的,主鍵,外鍵,或者排除約束,索引支持約束,否則為0 |
confrelid | oid | pg_class.oid | 如果是外鍵,則為引用表;否則為 0 |
confupdtype | char | ? | 外鍵更新動(dòng)作編碼 a = 沒動(dòng)作, r = 限制, c = 級(jí)聯(lián), n =設(shè)置為null, d =設(shè)置為缺省 |
confdeltype | char | ? | 外鍵刪除動(dòng)作編碼 a = 沒動(dòng)作, r = 限制, c = 級(jí)聯(lián), n =設(shè)置為null, d =設(shè)置為缺省 |
confmatchtype | char | ? | 外鍵匹配類型 f = 全部, p = 部分, u = 簡(jiǎn)單(未指定) |
conislocal | bool | ? | 這個(gè)約束來定義局部的關(guān)系。請(qǐng)注意, 約束可以在本地同時(shí)定義和繼承。 |
coninhcount | int4 | ? | 這個(gè)約束有直接繼承祖先的數(shù)目。不能刪除具有約束非零數(shù)字的祖先,也不能更名。 |
conkey | int2[] | pg_attribute.attnum | 如果一個(gè)表約束(包括外鍵,但沒有約束觸發(fā)器),則是約束控制的字段列表 |
confkey | int2[] | pg_attribute.attnum | 如果是一個(gè)外鍵,是引用字段的列表 |
conpfeqop | oid[] | pg_operator.oid | 如果是一個(gè)外健,列出相等運(yùn)算PK = FK 比較的字段列表 |
conppeqop | oid[] | pg_operator.oid | 如果是一個(gè)外健,是相等運(yùn)算PK = FK 比較的字段列表 |
conffeqop | oid[] | pg_operator.oid | 如果是一個(gè)外健,是相等運(yùn)算PK = FK 比較的字段列表 |
conexclop | oid[] | pg_operator.oid | 如果是一個(gè)排除約束,是每一列排斥操作符的字段列表 |
conbin | text | ? | 如果是檢查約束,那就是其表達(dá)式的內(nèi)部形式 |
consrc | text | ? | 如果是檢查約束,則是表達(dá)式的人類可讀形式 |
在排斥約束的情況下,conkey 是簡(jiǎn)單列引用的唯一有用約束元素。 對(duì)于其他情況下,conkey出現(xiàn)零 和必須查閱發(fā)現(xiàn)限制表達(dá)的相關(guān)索引。 (conkey作為pg_index.indkey 索引有相同的內(nèi)容)。
Note: 當(dāng)引用對(duì)象改變后,不會(huì)更新consrc。例如,它不會(huì)跟蹤字段名修改。 而不是依賴這個(gè)字段,最好還是使用
pg_get_constraintdef()
來提取一個(gè)檢查約束的定義。
Note: pg_class.relchecks需要和在此表上為給定關(guān)系找到的檢查約束的數(shù)目一致。 并且,如果關(guān)系中有任何排斥約束記錄,pg_class.relhasexclusion必須是真。