对象标识符(OID)被用来在内部作为多个系统表的主键。OID不会被添加到用户创建的表中,除非在创建表时指定了WITH OIDS或者启用了default_with_oids配置变量。OID类型有多个别名:regproc、regprocedure、regoper、regoperator、regclass、regtype、regrole、regnamespace、regconfig和regdictionary。
名字 | 引用 | 描述 | 值示例 |
oid | 任意 | 数字形式的对象标识符 | 564182 |
regproc | pg_proc | 函数名字 | sum |
regprocedure | pg_proc | 带参数类型的函数 | sum(int4) |
regoper | pg_operator | 操作符名字 | + |
regoperator | pg_operator | 带参数类型的操作符 | *(integer,integer) or -(NONE,integer) |
regclass | pg_class | 关系名字 | pg_type |
regtype | pg_type | 数据类型名字 | integer |
regrole | pg_authid | 角色名 | smithee |
regnamespace | pg_namespace | 名字空间名称 | pg_catalog |
regconfig | pg_ts_config | 文本搜索配置 | english |
regdictionary | pg_ts_dict | 文本搜索字典 | simple |
oid默认为无符号的4字节整数,在数据库中无法保证唯一性(不同Coordinator和Datanode间OID值可能相同),不建议作为用户定义表的主键使用。