如何在 SQLite 数据库中重新设置自动增量列? [英] How to reseed an an auto increment column in a SQLite database?

查看:27
本文介绍了如何在 SQLite 数据库中重新设置自动增量列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在 SQLite 数据库中重新设置自动增量列的种子,如果可以,如何完成?

Is it possible to reseed an auto increment column in a SQLite database, and if so, how is this done?

即.相当于 SQL Server 中的 DBCC CHECKIDENT ('MyTable', RESEED, 1).

ie. The equivalent of DBCC CHECKIDENT ('MyTable', RESEED, 1) in SQL Server.

推荐答案

在 SQLite 中有一个名为 SQLITE_SEQUENCE 的表,它跟踪表具有的最大 RowId 值.您可以在此表上执行插入、更新和删除操作.例如,要模拟与 SQL Server 的 TRUNCATE TABLE 语句类似的功能,您可以执行以下操作:

In SQLite there is a table named SQLITE_SEQUENCE, which tracks the largest RowId value that a table has. You can do insert, updates and deletes on this table. For example, to mimic similar functionality as the TRUNCATE TABLE statement SQL Server you could something like:

DELETE FROM MyTableName;
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName';

在上面的示例中,MyTableName 中的所有数据都被删除,并且通过从 SQLITE_SEQUENCE 表中删除值来重置自动增量 rowid.有关详细信息,请参阅 AUTOINCREMENT 的文档.

In the above example all data from MyTableName is removed, and the auto increment rowid is reset by removing the value from the SQLITE_SEQUENCE table. See the documentation for AUTOINCREMENT for more information.

这篇关于如何在 SQLite 数据库中重新设置自动增量列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆