私はPostgreSQL8.4.13データベースを使用しています。
最近、テーブルに約8650万件のレコードがありました。私はそれらのほとんどすべてを削除しました-現在5000レコードしか残っていません。私は走った:
vacuum full
行を削除した後、ディスクスペースをOSに戻しました(仲間のSOメンバーからの提案へのthx)
しかし、私のID番号はまだ数百万にとどまっていることがわかります。例:
id | date_time | event_id | secs_since_1970 | value
---------+-------------------------+----------+-----------------+-----------
61216287 | 2013/03/18 16:42:42:041 | 6 | 1363646562.04 | 46.4082
61216289 | 2013/03/18 16:42:43:041 | 6 | 1363646563.04 | 55.4496
61216290 | 2013/03/18 16:42:44:041 | 6 | 1363646564.04 | 40.0553
61216291 | 2013/03/18 16:42:45:041 | 6 | 1363646565.04 | 38.5694
残りの行のid
値を最初からやり直すために、次のことを試みました。1
cluster mytable_pkey on mytable;
mytable
私のテーブルの名前はどこですか。しかし、それは役に立ちませんでした。だから、私の質問は/です:
- インデックス(id値)を1から再開する方法はありますか?
- 新しいレコードでテーブルを追加または更新した場合、テーブルは1から開始しますか、それとも次に大きい整数値(上記の例では61216292)を取得しますか?
私のテーブルの説明は次のとおりです。FK制約もシーケンスもありません。
jbossql=> \d mytable;
Table "public.mytable"
Column | Type | Modifiers
-----------------+------------------------+-----------
id | bigint | not null
date_time | character varying(255) |
event_id | bigint |
secs_since_1970 | double precision |
value | real |
Indexes:
"mydata_pkey" PRIMARY KEY, btree (id) CLUSTER