Postgresql

通過 select 獲取 postgres 分區表結構

  • April 5, 2022

我正在尋找一些基於 SQL 的簡單命令來向我展示 postgres 中的分區表結構。類似的東西\d <table>。到目前為止,我發現的只是做pgdump.

db=> \d partitioned_table
ERROR:  column c.relhasoids does not exist
LINE 1: ..., c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoi...
        

我不知道有任何“基於 sql 的簡單命令”,但這並不意味著您不能創建一個可以滿足您需求的命令。

在 psql 中,您可以\set ECHO_HIDDEN on. 這將導致 psql 回顯它用來回答\d ...命令的查詢。

設置 ECHO_HIDDEN 後,執行\d+ my_schema.my_partitioned_table。這將為您提供的不僅是有關分區表的詳細資訊(包括分區),還有用於檢索這些詳細資訊的查詢。使用這些查詢作為起點,可以建構您想要的內容。

SELECT table_name, 
      column_name, 
      data_type,
      character_maximum_length
FROM information_schema.columns
WHERE table_name = 'partitioned_table';

引用自:https://dba.stackexchange.com/questions/310482