PostgreSQLでAUTO_INCREMENTする

PostgreSQLでAUTO_INCREMENTする

MySQLだとAUTO_INCREMENT属性がありますが、PostgreSQLではSERIAL型、またはBIGSERIAL型にすればインクリメントされるようになります。

create table sample_table (
    id SERIAL NOT NULL
  , name character varying(30)
  , PRIMARY KEY(id)
);

裏ではシーケンスオブジェクトが作成されます。

「テーブル名_カラム名_seq」という名前のシーケンスオブジェクトが作成されます。

シーケンス初期化

シーケンスオブジェクトが発番する値を初期化したい場合はsetvalで指定しなおします。

select setval('シーケンスオブジェクト名', 1, false);

これで次回インサート時に1が設定されます。

コメント

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