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 を利用すれば、スキマー名やその設定内容が取得できます。
