历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.
17.2. 访问方法 #
pg_am 表为每个索引访问方法保存一行。堆访问方法的支持内置于
PostgreSQL 中,但所有其他访问方法都在 pg_am
中描述。其模式如表 17.1所示。
表 17.1. 索引访问方法模式
| 列 | 描述 |
|---|---|
| amname | 访问方法的名称 |
| amowner | 属主的用户 ID(当前未使用) |
| amstrategies | 该访问方法的策略数目(见下文) |
| amsupport | 该访问方法的支持例程数目(见下文) |
| amorderstrategy | 如果索引不提供排序顺序则为零,否则是描述该排序顺序的策略操作符的策略号 |
| amcanunique | 该访问方法是否支持唯一索引? |
| amcanmulticol | 该访问方法是否支持多列索引? |
| amindexnulls | 该访问方法是否支持 NULL 索引项? |
| amconcurrent | 该访问方法是否支持并发更新? |
| amgettuple | |
| aminsert | |
| ... | 访问方法接口例程的过程标识符。例如,打开、关闭访问方法以及从中获取行的 regproc ID 就出现在这里。 |
pg_am 中该行的对象 ID
被用作许多其他表中的外键。你不需要向这个表添加新行;你所关心的只是你想扩展的访问方法的对象 ID:
SELECT oid FROM pg_am WHERE amname = 'btree'; oid ----- 403 (1 row)
我们稍后会在 WHERE 子句中使用该查询。