• ベストアンサー

シーケンシャル番号

既存のテーブルのデータを全て削除し、 あらたに新しいデータを挿入しようとしていますが、 シーケンシャル番号を1からふりたいのですが、 SELECT setval('もともとのシーケンス',1); とするとシーケンシャルは2番目から始まってしまいます。 SELECT setval('もともとのシーケンス',0); とするとエラーになってしまいます。 スタート値を1からつけたいのですが、 どのようにしたらよいのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • zebedeer
  • ベストアンサー率66% (80/121)
回答No.2

SELECT setval ('"もともとのシーケンス"',1,false); 基本値の後がfalseの場合、基本値の値から始まります。 基本値の後がtrueの場合、基本値の次の値から始まります。 (指定がない場合、true)

aiurai54
質問者

お礼

なるほどっ!!さっそくやってみます。ありがとうございます。

その他の回答 (1)

  • EEshiba
  • ベストアンサー率29% (45/152)
回答No.1

seauenceの最小値の初期値は1なので SELECT setval('もともとのシーケンス',0); はエラーになります。 ALTER SEQUENCE もともとのシーケンス MINVALUE 0 とすれば、0が初期値としてセットできるので、 nextvalは1から取得できると思うのですが。 但し、今、手元に環境が無く、やってみていないので、自信はありません。

aiurai54
質問者

お礼

ありがとうございます。やってみます。

関連するQ&A