查找 Postgres 表的副本标识

sva*_*ili 12 postgresql logical-replication

有没有办法查看 Postgres 表具有什么样的副本标识,无论是使用 pgAdmin 还是通过查询?

Lau*_*lbe 16

您可以查询pg_class系统目录:

SELECT CASE relreplident
          WHEN 'd' THEN 'default'
          WHEN 'n' THEN 'nothing'
          WHEN 'f' THEN 'full'
          WHEN 'i' THEN 'index'
       END AS replica_identity
FROM pg_class
WHERE oid = 'mytablename'::regclass;
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用默认逻辑副本标识,那么了解所有没有主键的表也很有用 - https://dba.stackexchange.com/questions/29932/how-can-i-list-all-tables-without-a-primary -key#answer-29933 (2认同)
  • 如果将表的副本标识设置为索引,则可以使用“SELECT indexrelid::regclass FROM pg_index WHERE indrelid='mytablename'::regclass AND indisreplident;”找到相关索引 (2认同)