| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 43. 系統表 | Fast Forward | Next |
系統表 pg_constraint 存儲表上的檢查約束、主鍵、唯一約束和外鍵 約束。(字段約束不會得到特殊對待。每個字段約束都等效于某些表約束。) 參閱 CREATE TABLE 獲取更多信息。
在域上面的檢查約束存儲在這裡。
Table 43-10. pg_constraint 字段
| 名字 | 類型 | 引用 | 描述 |
|---|---|---|---|
| conname | name | 約束名字(不一定是唯一的!) | |
| connamespace | oid | pg_namespace.oid | 包含這個約束的名字空間的 OID |
| contype | char | c = 檢查約束, f = 外鍵約束, p = 主鍵約束, u = 唯一約束 | |
| condeferrable | boolean | 這個約束可以推遲嗎? | |
| condeferred | boolean | 缺省時這個約束是否推遲的? | |
| conrelid | oid | pg_class.oid | 這個約束所在的表;如果不是表約束則為 0 |
| contypid | oid | pg_type.oid | 這個約束所在的域;如果不是一個域約束則為 0 |
| confrelid | oid | pg_class.oid | 如果是外鍵,則為參考的表;否則為 0 |
| confupdtype | char | 外鍵更新動作代碼 | |
| confdeltype | char | 外鍵刪除動作代碼 | |
| confmatchtype | char | 外鍵匹配類型 | |
| conkey | int2[] | pg_attribute.attnum | 如果是表約束,則是約束控制的字段列表 |
| confkey | int2[] | pg_attribute.attnum | 如果是一個外鍵,是參考的字段的列表 |
| conbin | text | 如果是檢查約束,那就是其表達式的內部形式 | |
| consrc | text | 如果是檢查約束,則是表達式的人類可讀形式 |
注意: consrc 在被引用的對象改變之後不會被更新, 它不會跟蹤字段的名字修改。與其依賴這個字段,我們最好還是使用 pg_get_constraintdef() 來抽取一個檢查約束的定義。
注意: pg_class.relchecks 需要和在此表上為給定關系找到的檢查約束的數目一致。