美文网首页iOS_summary
SQLite清空表并将自增列归零

SQLite清空表并将自增列归零

作者: 忻凯同学 | 来源:发表于2018-01-18 16:31 被阅读14次

前言

        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, … );

        当SQLite数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。这个表包含两个列:name和seq。name记录自增列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。

        如果想把某个自增列的序号归零,只需要修改 sqlite_sequence表就可以了。

UPDATE sqlite_sequence SET seq = 0 WHERE name = ‘TableName’;

        也可以直接把该记录删掉:

DELETE FROM sqlite_sequence WHERE name = ‘TableName’;

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

DELETE FROM sqlite_sequence;


        如果是在FMDB中,这样使用:

[db executeUpdate:@"DELETE FROM coupon"];

[db executeUpdate:@"UPDATE sqlite_sequence set seq=0 where name='coupon'"];

相关文章

  • SQLite清空表并将自增列归零

    前言 SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容,但SQLite不支持这个语句,在SQL...

  • SQLite使用合集

    清空SQLite表后,如何使表的自增ID值也归零问题描述:sqlite3在清空table后,如果table中有自增...

  • SQLite清空表数据并将自增量归零

    在普通的SQL中,实现如题所示的需求是通过truncate [tablename]来实现,但是在SQLite中,是...

  • SQLite 新增列

  • mysql

    自增 自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列) 查看表的信息 sho...

  • android 数据库增删改查笔记

    表结构 清空表数据,并根据表中的字段入库 查询并 多个条件查询,采用and并使用distinct去重

  • mysql关于自增

    自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增 列) create table...

  • Sqlite3清空表数据并将自增主键初始化为1

    1、在其他SQL语言中使用truncate,但是slqite3没有truncate关键词 2、先删除表数据: de...

  • 晚间随笔

    人总要沉下心来过一段宁静而自省的日子,整理自己。 嗯,我觉得目前我就是处于这段日子,将自己归零,清空,从新开始。 ...

  • 设计模式小结-中介者模式

    中介者模式概述 新增页面的同时清空内容,新增列表,按钮不可用..点击按钮的同时清空页面内容,更新列表...各个组件...

网友评论

    本文标题:SQLite清空表并将自增列归零

    本文链接:https://www.haomeiwen.com/subject/dquwoxtx.html