postgreSQLでauto_incrementをリセットする方法

カラム情報にauto_incrementを指定するとデータを入れる度に値が加算されます。

テーブル内のデータを全て消して1から入れ直したいときなどありますよね。

そんなときに、通し番号(シーケンス)をリセットして1からカウントする方法を紹介します。

テーブル作成時にauto_incrementを設定すると番号が保持されているシーケンスデータが作成されます。

それは

SELECT * FROM テーブル名_カラム名_seq;

で見ることができます。

例えば以下のテーブルを作成してデータをいくつか入れてみます。

シーケンスデータとして以下が返ってきます。

last_value | log_cnt | is_called

4              |0           |t

last_valueが現在の通し番号となります。

そしてこの番号をリセットするにはこのように書きます。

SELECT SETVAL (テーブル名_カラム名_seq’, 1, false);

上のテーブルの場合は

になります。

シーケンスデータを再び見て

last_value | log_cnt | is_called

1              |0           |f

こちらが返って来ればOKです。

is_calledlast_valueが設定されたかどうかを示しています。

通常、データを入れる場合はlast_valueが加算されてis_calledtrueになります。

今回はデータを入れる前なので、次にデータを入れる際1を設定するためにis_calledfalseに指定しています。

以上です。


【ぼくのバンド紹介】shabones(しゃぼんず)
敏感でもろいロックバンドです。

是非聴いてください〜(^^)

しゃぼんさん
生きづらい世界なのに生きることにすがるしかできないなんて悲しすぎるぼん。
しゃぼんさん
今更もう何したってどうしようもない。切なすぎる曲だぼん。PVがかっこいいぼん!
 

DTひらさんって誰??

こちらをみてください!
DTひらさんについて
名前:ひら 性別:男 出身:岐阜県現在地:首都圏 パート:ボーカル、ギター 好きなバンド:syrup16g, ゆらゆら帝国, Nir...

シェアしてね

  • このエントリーをはてなブックマークに追加

フォローしてね