`

SQLite清空表并将自增列归零

阅读更多

SQLite清空表并将自增列归零
作者:Zhu Yanfeng   发布:2012-09-29 14:43   分类:数据库   阅读:3,567次   抢沙发 

SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容。但SQLite不支持这个语句。在SQLite中直接使用“DELETE FROM TableName”就可以了。对于大多数DBMS来说,用DELETE不如用TRUNCATE 速度快,因为TRUNCATE 不用访问整个表,不用记录数据的变动。

SQLite虽然不支持TRUNCATE,但它对DELETE做了优化:“When the WHERE is omitted(略去) from a DELETE statement and the table being deleted has no triggers(触发器), SQLite uses an optimization(优化) to erase the entire table content without having to visit each row of the table individually. This “truncate” optimization makes the delete run much faster.”

通常在清空表的时候,还需要把自增列归零。在SQLite中定义自增列的方法如下:
CREATE TABLE TableName ( id INTEGER PRIMARY KEY AUTOINCREMENT, ... );
1

CREATE TABLE TableName ( id INTEGER PRIMARY KEY AUTOINCREMENT, ... );

当SQLite数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。这个表包含两个列:name和seq。name记录自增列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。如果想把某个自增列的序号归零,只需要修改 sqlite_sequence表就可以了。
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'TableName';
1

UPDATE sqlite_sequence SET seq = 0 WHERE name = 'TableName';

也可以直接把该记录删掉:
DELETE FROM sqlite_sequence WHERE name = 'TableName';
1

DELETE FROM sqlite_sequence WHERE name = 'TableName';

要想将所有表的自增列都归零,直接清空sqlite_sequence表就可以了:
DELETE FROM sqlite_sequence;
1

DELETE FROM sqlite_sequence;


分享到:
评论

相关推荐

    SQLite3中自增主键相关知识总结

    一、SQLite清空表并将自增列归零 SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容。但SQLite不支持这个语句。在SQLite中直接使用 DELETE FROM TableName 就可以了。对于大多数DBMS来说,用DELETE不如用...

    SQL 在自增列插入指定数据的操作方法

    SQL Server 中数据表往往会设置自增列,常见的比如说 首列的ID列。 往数据表插入新数据的时候,自增列是跳过的,无需插入即会按照设置的自增规则进行列增长。那么,如果我们想往自增列插入我们指定的数据时该怎么做...

    Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例

    本示例将介绍如何使用Python读取SQLite3数据库中的数据,并将统计结果写入Excel文件。 首先,确保已安装了`sqlite3`(Python标准库的一部分)和`pandas`(用于数据处理和分析)以及`openpyxl`(用于处理Excel文件)...

    sqlite 多表联动

    在SQLite中,JOIN用于将两个或更多个表中的行结合起来,基于这些表之间的相关列。主要有四种类型的JOIN:INNER JOIN、LEFT JOIN (或 LEFT OUTER JOIN)、RIGHT JOIN (或 RIGHT OUTER JOIN) 和 FULL JOIN (或 FULL ...

    delphi使用unidac连接sqlite实现增删改的例子

    本篇文章将详细探讨如何在Delphi中使用Unidac连接SQLite数据库并实现数据的增、删、改操作。 首先,我们需要了解Unidac的基本用法。Unidac提供了一套统一的接口,使得开发者可以在不同的数据库之间轻松切换。在...

    VB6.0 操作SQLite 数据库的完整示例代码

    在VB6.0中操作SQLite数据库,是一种将轻量级、高性能的SQLite数据库与传统的Visual Basic编程环境相结合的方法。SQLite是一种自包含、无服务器、零配置、事务性的SQL数据库引擎,广泛应用于移动设备、嵌入式系统以及...

    sqlite学生表数据库c语言操作

    sqlite学生表数据库c语言操作,使用c语言对sqlite数据库进行基本操作

    SQLite中重置自动编号列的方法

    这将把`Users`表的`seq`字段设置为0,意味着下一次插入新记录时,`id`列将从1开始递增。 或者,你也可以选择删除对应的记录并让SQLite重新创建它: ```sql DELETE FROM sqlite_sequence WHERE name = 'Users';...

    python清空sqlite库

    使用python连接sqlite数据库,并且清空sqlite数据库。此资源是python连接sqlite数据库所进行的操作。

    SQLite数据表查询

    标题"SQLite数据表查询"涉及到的是如何在SQLite数据库中检索和操作数据。查询是数据库操作的核心部分,它允许我们从数据表中获取我们需要的信息。下面将详细解释两种主要的查询方法: 1. **rawQuery() 方法**: `...

    完整版生成Sqlite表结构.rar

    在本文中,我们将深入探讨如何生成SQLite数据库的表结构,这通常涉及到SQL语句的编写以及数据库设计的基本原则。 SQLite数据库的表结构是由一系列的表格构成的,每个表格由列(Columns)和行(Rows)组成。创建表...

    SQLite Truncate Table

    在 SQLite 数据库中,虽然没有直接的 `TRUNCATE TABLE` 命令来清空一个...如果之后再次向 `COMPANY` 表插入数据,ID 自增列将从 1 开始重新计数。在实际应用中,这种操作通常用于测试环境或需要快速清理表数据的情况。

    sqlite表结构自动更新

    继承自SQLiteOpenHelper 类,当数据库的数据或表结构有变动时,可以自动更新数据库,免去还得卸载程序,或者数据库更名的问题

    sqlite_api.rar_sqlite_sqlite数据库表

    例如,`sqlite3_prepare_v2()`和`sqlite3_step()`可以配合使用来执行SELECT语句,并通过`sqlite3_column_*()`系列函数获取查询结果中的列值。对于更新和删除操作,同样可以通过执行UPDATE或DELETE语句来完成。 此外...

    sqlite数据库简单例程,创建插入清空删除

    在这个例程中,我们将探讨如何使用SQLite进行数据库的创建、插入数据、清空表以及删除表等基本操作。 首先,我们需要包含SQLite的库文件,并初始化数据库连接。在C语言中,这通常通过`sqlite3_open()`函数完成。...

    Sqlite3数据库支持库

    1. 数据库文件格式:SQLite3将数据库存储在一个单一的文件中,这使得数据库的迁移和备份变得简单。文件格式是跨平台的,能够在不同的操作系统之间无缝迁移。 2. SQL语句支持:SQLite3支持标准SQL语法,包括CREATE ...

    Windows下SQLite创建数据库的方法

    - **查看数据库中的表**:使用`.tables`命令可以列出当前数据库中所有表的名称。 - **退出SQLite**:使用`.quit`命令退出SQLite环境,返回命令行界面。 ### 高级功能与帮助 SQLite还提供了许多高级功能,如数据...

    Android 解决sqlite无法创建新表的问题

    使用SQLite时,继承SQLiteOpenHelper, onCreate方法只有在第一次创建数据库的时候才会被调用, 因此,重新更改或者添加表时,需要在DDMS里面删掉原来的.db文件,重新运行,就可以~ 补充知识:Android studio ...

    sqlite数据库Data.zip

    包括三张表分组表MyGroup,数据库表MyDB,数据表表MyTable,测试用例中使用到了,操作是测试数据库的其中一张表,其中包括清空sqlite数据库MyGroup表中的数据,清空sqlite数据库sqlite_sequence表中的自增变量,...

Global site tag (gtag.js) - Google Analytics