は、私は別の結果を得ます値は1になりますが、NEXTレコード(レコードがないため実際には最初のレコード)は2です。Postgresqlのシーケンス
シーケンスの最小値が1であるため、0に設定することはできません!
私が使用:
ALTER SEQUENCE tblname_id_seq RESTART WITH 1;
挿入された最初のレコードが実際に番号1を取得!しかし、上記のコードでは、1の代わりに値としてSELECTを受け入れません。
レコードがないときにシーケンスを番号1にリセットしたい場合、最初のレコードは1から始める必要があります。すでにテーブルにレコードがある場合は、挿入された次のレコードが{最高} +1になるようにシーケンスをリセットします。
誰もがこれに対して明確な解決策を持っていますか?それはすぐに新しいものを生成するのではなく、次nextval
呼び出しのシーケンスの現在の値を返すよう
「COALESCE(MAX(id)、0)+1」 –
を使用します。そうでない場合は、次のIDがMAX(id)と衝突します。 – araqnid
これはうまくいきました。それは面倒ですが、私はそのパラメータを調べましたが、試してみるとうまくいきませんでした。私は何か間違ったことをしたに違いない... – Dylan