pg_publication_rel 是一个 系统目录 表,用于存储关系与 发布 之间的映射。
pg_publication_rel 在 PostgreSQL 10 中被添加。
视图 pg_publication_tables 提供了该表的易读版本。
请注意,只有显式添加到发布的表(例如 CREATE PUBLICATION ... FOR TABLE ...)才会在此表中记录。使用 CREATE PUBLICATION ... FOR ALL TABLES 创建的发布的表将不会在 pg_publication_rel 中记录,但会在 pg_publication_tables 中显示。
按 PostgreSQL 版本定义
pg_publication_rel (PostgreSQL 19)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+--------------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
prqual | pg_node_tree | C | |
prattrs | int2vector | | |
Indexes:
"pg_publication_rel_oid_index" PRIMARY KEY, btree (oid)
"pg_publication_rel_prpubid_index" btree (prpubid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE CONSTRAINT, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 18)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+--------------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
prqual | pg_node_tree | C | |
prattrs | int2vector | | |
Indexes:
"pg_publication_rel_oid_index" PRIMARY KEY, btree (oid)
"pg_publication_rel_prpubid_index" btree (prpubid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE CONSTRAINT, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 17)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+--------------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
prqual | pg_node_tree | C | |
prattrs | int2vector | | |
Indexes:
"pg_publication_rel_oid_index" PRIMARY KEY, btree (oid)
"pg_publication_rel_prpubid_index" btree (prpubid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE CONSTRAINT, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 16)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+--------------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
prqual | pg_node_tree | C | |
prattrs | int2vector | | |
Indexes:
"pg_publication_rel_oid_index" PRIMARY KEY, btree (oid)
"pg_publication_rel_prpubid_index" btree (prpubid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE CONSTRAINT, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 15)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+--------------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
prqual | pg_node_tree | C | |
prattrs | int2vector | | |
Indexes:
"pg_publication_rel_oid_index" PRIMARY KEY, btree (oid)
"pg_publication_rel_prpubid_index" btree (prpubid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE CONSTRAINT, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 14)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
Indexes:
"pg_publication_rel_oid_index" PRIMARY KEY, btree (oid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE CONSTRAINT, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 13)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
Indexes:
"pg_publication_rel_oid_index" UNIQUE, btree (oid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 12)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+------+-----------+----------+---------
oid | oid | | not null |
prpubid | oid | | not null |
prrelid | oid | | not null |
Indexes:
"pg_publication_rel_oid_index" UNIQUE, btree (oid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 11)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+------+-----------+----------+---------
prpubid | oid | | not null |
prrelid | oid | | not null |
Indexes:
"pg_publication_rel_oid_index" UNIQUE, btree (oid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE, btree (prrelid, prpubid)
pg_publication_rel (PostgreSQL 10)
Table "pg_catalog.pg_publication_rel"
Column | Type | Collation | Nullable | Default
---------+------+-----------+----------+---------
prpubid | oid | | not null |
prrelid | oid | | not null |
Indexes:
"pg_publication_rel_oid_index" UNIQUE, btree (oid)
"pg_publication_rel_prrelid_prpubid_index" UNIQUE, btree (prrelid, prpubid)
变更历史
自 PostgreSQL 10 添加以来,此表未被修改。
- PostgreSQL 10
- (提交 665d1fad)
示例
如果创建一个用于一个或多个指定表的发布,那么 pg_publication_rel 中会为每个表创建一个关联该发布的条目。
postgres=# CREATE PUBLICATION test_publication FOR TABLE foo; CREATE PUBLICATION postgres=# SELECT *, prrelid::regclass AS table FROM pg_publication_rel; oid | prpubid | prrelid | table -------+---------+---------+------- 16394 | 16393 | 16390 | foo (1 row)
参考资料
- PostgreSQL 文档: pg_publication_rel
