PostgreSQLでシーケンスの一覧を取得する方法

記事内に広告が含まれています。

PostgreSQL では テーブルにデータを挿入する際などに自動で採番する機能としてシーケンス(sequence)をサポートしています。

この記事では PostgreSQL のシーケンスの一覧を設定内容と共に取得する SQL を解説します。

PostgreSQLでシーケンスの一覧を取得する方法

PostgreSQLでシーケンスの一覧を SQL で取得するには pg_sequences 、 pg_class を利用します。

以下がその SQL です。

SELECT
     s.sequencename AS sequence_name
    ,c.oid AS oid
    ,s.start_value AS start_value
    ,s.min_value AS min_value
    ,s.max_value AS max_value
    ,s.increment_by AS increment_by
    ,s.cycle AS cycle
    ,s.last_value AS last_value
    ,s.data_type AS data_type
    ,s.cache_size AS cache
    ,s.sequencename AS key
FROM
    pg_sequences AS s
    LEFT OUTER JOIN pg_class AS c ON
        s.sequencename = c.relname
WHERE
    s.schemaname=current_schema()
ORDER BY
    s.sequencename

上記 SQL で WHERE句の s.schemaname=current_schema() は現在接続中のスキーマに限定するためであり、すべてのシーケンスを取得する場合は不要です。

まとめ

PostgreSQLでシーケンスの一覧を SQLで取得するには pg_sequences、pg_class を利用すれば、スキマー名やその設定内容が取得できます。

タイトルとURLをコピーしました