SQLite实现TRUNCATE TABLE语句功能,即表ID从1开始
SQLite确实不直接支持标准的TRUNCATE TABLE语句,但可以通过以下替代方案实现相同功能: 1. 删除并重建表(保留结构) - DELETE FROM table_name;
- -- 重置自增计数器(仅对INTEGER PRIMARY KEY有效)
- UPDATE sqlite_sequence SET seq = 0 WHERE name = 'table_name';
复制代码2. 使用DROP+CREATE(完全重置) - -- 先获取表结构(需手动保存)
- .schema table_name
- -- 然后执行
- DROP TABLE table_name;
- -- 最后用保存的schema重建表
复制代码差异说明: - DELETE会逐行删除(较慢),但保留索引/触发器
- DROP会立即清除(更快),但需要重建结构
性能建议:
- 小型表用DELETE更方便
- 大型表建议用事务包裹操作:
- BEGIN;
- DELETE FROM large_table;
- COMMIT;
复制代码
关键说明:方法选择建议:
- 90% 场景用方法1(保留索引/触发器/外键)
- 超大数据量(GB级)用方法2(性能更好)
|