我正在使用 PostgreSQL 8.4.13 数据库。
最近我在一个表中有大约 8650 万条记录。我几乎全部删除了——现在只剩下 5000 条记录。我跑了:
vacuum full
在删除行并将磁盘空间返回给操作系统之后(感谢 SO 成员的建议)
但我看到我的身份证号码仍然停留在数百万。例如:
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