linux sqlite3数据库删除了表里面的数据,然后再插入数据后,ID 却不会从1开始,而是接着被删除数据末尾的ID继续插入,为什么?
时间: 2024-04-29 07:26:17 浏览: 182
这是因为 SQLite 数据库的主键 ID 是自增的,而删除数据并不会清空 ID 序列。当你再次插入数据时,SQLite 会从上一次插入的 ID 后面继续递增。如果你需要重新从 1 开始自增 ID,可以使用以下语句:
```
DELETE FROM table_name;
DELETE FROM sqlite_sequence WHERE name='table_name';
VACUUM;
```
这三条语句将会清空表中的数据,删除序列表中相关的记录并压缩数据库,使得 ID 序列重新从 1 开始。
相关问题
linux sqlite3数据库删除了表里面的数据,然后再插入数据后,ID 却不会从1开始,而是接着被删除数据末尾的ID继续插入,如何在重新插入数据后是从ID=1开始插入数据
可以使用 SQLite3 自带的 VACUUM 命令来清除表中被删除的行以及重置表中的自增 ID。具体操作为先删除表中数据,然后执行 VACUUM 命令,最后插入新的数据即可。具体代码如下:
1. 删除数据
DELETE FROM table_name;
2. 执行 VACUUM 命令
VACUUM;
3. 插入新数据
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
这样就可以实现在重新插入数据后从 ID=1 开始插入数据了。
阅读全文