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