以前に書いたidentity columnに関する記事(identity column - テーブルの各行にシーケンス番号を割り当てる - HHeLiBeXの日記 正道編)のPostgreSQL版。
SERIAL型やBIGSERIAL型を使用すればいいらしい。(正確には、SERIALやBIGSERIALはデータ型ではないらしい。)
- PostgreSQL 8.4.4文書 「8.1.4. 連番型」
- PostgreSQL 8.3.7文書 「8.1.4. 連番型」
- PostgreSQL 8.2.6文書 「8.1.4. 連番型」
- PostgreSQL 8.1.9文書 「8.1.4. 連番型」
- PostgreSQL 8.0.4文書 「8.1.4. 連番型」
- PostgreSQL 7.4.6文書 「8.1.4. 連番型」
- PostgreSQL 7.3.4 ユーザガイド 「5.1.4. シリアルデータ型」
CREATE TABLE hoge( seq_num SERIAL NOT NULL , msg VARCHAR(32) NOT NULL )
実行結果はこんな感じ。
SELECT seq_num, msg from hoge order by msg
seq_num msg
----------- --------------------------------
1 01: first message
2 02: second message
3 03: third message
4 04: fourth message
5 05: fifth message
6 06: sixth message
7 07: seventh message
8 08: eighth message実際に実行したクエリを保存したファイルは次のとおり。