MySQLではオートインクリメントという機能で、idフィールドなどの値に連番を自動発行してくれるのだが、PostgreSQLの場合はオートインクリメントが用意されていない。

今回はNavicatを使って、PostgreSQLのデフォルト値にシーケンスとして管理されている連番を設定する方法を紹介する。

シーケンスの作成

まず、Navicatでシーケンスを用意しておく。

上部のメニューから「シーケンス」を選択し、「新規シーケンス」ボタンから作成する。

この時、「所有元を追加」にチェックを入れ、対象のテーブルと列をプルダウンから設定しておく。

デフォルト値にシーケンスを設定

次に、対象のテーブルを選択し「テーブルを設計」を開く。

連番を設定したいフィールドを選択し、デフォルト値に次のように入力する。

nextval('sequence_name'::regclass)

フィールドはプルダウンになっているが、自由入力もできるため上記のsequence_nameのところを変更してそのまま入力。

これでINSERT文を実行すると、idフィールドに値を入れることなく自動で連番が設定されるようになる。