| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 41. 系統資料表 | Fast Forward | Next |
系統資料表 pg_constraint 儲存資料表上的檢查約束、主鍵、唯一約束和外鍵約束。 (字串約束不會得到特殊對待。每個字串約束都等效於某些資料表約束。) 參閱 CREATE TABLE 獲取更多訊息。
在域上面的檢查約束儲存在這裡。
Table 41-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 需要和在此資料表上為給定關係找到的檢查約束的數目一致。