データベースで作成されるパーティションの数を取得する最も効率的な方法は何ですか? 私は* postgresq * l APi for C++を使用しています。postgresqlデータベースのパーティション数を取得する
2
A
答えて
8
これは、あなたがテーブルのパーティションのすべての名前を選択することができる方法です。
SELECT
nmsp_parent.nspname AS parent_schema,
parent.relname AS parent,
COUNT(*)
FROM pg_inherits
JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
JOIN pg_class child ON pg_inherits.inhrelid = child.oid
JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = parent.relnamespace
JOIN pg_namespace nmsp_child ON nmsp_child.oid = child.relnamespace
GROUP BY
parent_schema,
parent;
0
この質問は古いです:
SELECT
nmsp_parent.nspname AS parent_schema,
parent.relname AS parent,
nmsp_child.nspname AS child,
child.relname AS child_schema
FROM pg_inherits
JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
JOIN pg_class child ON pg_inherits.inhrelid = child.oid
JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = parent.relnamespace
JOIN pg_namespace nmsp_child ON nmsp_child.oid = child.relnamespace
それだけでなく、カウントするために使用することができます。しかし、a new question on dba.SEはそれを参照しています。もっと簡単な解決方法を追加するよう迫っています。
質問によると、へ...
がデータベース内に作成したパーティションの数を取得する:inheritanceを使用して
と、特定の親テーブルのために、私が想定しています
SELECT count(*) AS partitions
FROM pg_inherits i
WHERE i.inhparent = 'my_schema.my_parent_tbl'::regclass;
dba.SEに関する関連の回答の詳細:
Get all partition names for a table
関連する問題
- 1. PostgreSQLのパーティション(ウィンドウ)のサイズを取得するには?
- 2. データベースのパーティション化 - パーティションの列
- 3. ディスクからデータベースpostgresqlバックアップを取得する
- 4. sqlalchemy/postgresql:データベースの 'as-of'クエリのタイムスタンプを取得
- 5. PostgreSQL取得日
- 6. PostgreSQLネイティブエラーコードの取得
- 7. Pythonで各パーティションの情報を取得
- 8. postgresqlの複数のテーブルからデータを取得する
- 9. 変数を取得するPHPデータベース
- 10. データベース内のPostgreSQL関数
- 11. PostgreSQLのデータベースを使用してカラムのサイズとタイプを取得する方法
- 12. postgresqlのチャンクでデータを取得する
- 13. PostgreSQLのスキーマコメントを取得する方法
- 14. 複数のテーブルビューからカーソルを取得するPostgreSQL
- 15. postgresqlデータベースで実行中のクエリのステータスを取得する方法
- 16. PostgreSQLデータベースへのPostgreSQLデータベースへのPostgreSQLデータベースへのPostgreSQLのアクションへの投稿
- 17. JOOQ PostCommitをPostgreSQLデータベースに取得できません
- 18. PostgreSQLデータベースにリモートアクセスしてそのダンプをローカルに取得する方法は?
- 19. U-SQL/ADLA:テーブルで複数のインデックスとパーティションを取得する方法は?
- 20. Golang Kafkaのパーティションのコンシューマグループのオフセットを取得する方法10
- 21. Azureテーブルの各パーティションの最初の行を取得する
- 22. PostgreSQLからブール値を取得する
- 23. データ型サイズを取得するPostgreSQL
- 24. Postgresql:一致するキーワードを取得
- 25. sql Postgresqlで文字列変数を取得する方法
- 26. cosmos dbのパーティション間でIDを取得するのが遅い
- 27. Postgresqlの書き込みmax()複数のパーティション式を持つウィンドウ関数?
- 28. データベースのパーティション化の説明
- 29. PostgreSQLでツリーを取得
- 30. Postgresqlデータベースから角型Webサイトにデータを取得する方法は?
そして、最も古いパーティションを削除するにはどうすればよいですか? (最初に作成されたパーティション) – Shay
最も小さいOIDが最も古いパーティションである場合、MIN(child.oid)を使用してこのパーティションを見つけることができます。これを使用して、このテーブルの名前とスキーマを検索し、このテーブルをDROPするために使用できます。ストアドプロシージャを使用すると、保守が簡単になります。 –