ブラックボックス

プログラミングのノウハウやライフハックをどんどん投稿していきたい

Aug 26, 2013 - 1 minute read - ノウハウ

【PostgreSQL】シークエンスを最新の番号に再設定する

ちょっとやることが多くて忙しいです。
なので小ネタを。

PostgreSQLにて、 何故かシークエンスの値がずれていてnextvalを流したらエラーが出てしまった。
わざわざ値を調べてsetvalは面倒なので、SQL文一発で設定が出来るようにした。

SELECT
    SETVAL (シークエンス名, (
        SELECT
            MAX(シークエンスを設定しているカラム名)
        FROM
            テーブル名)
    );

これで次にnextvalを流したときはMAX+1の値が取得できた。