我需要将行号计数重置为1。
我怎样才能做到这一点?
我的代码中的更新查询示例:
public boolean update (long rowId, String title, String body, String reminderDateTime, String loca, String type, String settime, String lat, String llong) {
ContentValues args = new ContentValues();
args.put(KEY_TITLE, title);
args.put(KEY_BODY, body);
args.put(KEY_DATE_TIME, reminderDateTime);
args.put(KEY_LOCATION, loca);
args.put(KEY_TYPE, type);
args.put(KEY_SETTIME, settime);
args.put(KEY_LAT, lat);
args.put(KEY_LONG, llong);
return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
我试图这样做,但是日食显示了一个错误:“ sqlite_sequence无法解析为变量”
public void resetAutoNumbering ()
{
mDb.update(sqlite_sequence, args, KEY_ROWID + "=" + rowId, null);
}
我该怎么办?
最佳答案
发现此内容作为类似问题SQLite Reset Primary Key Field的答案:delete from your_table;
delete from sqlite_sequence where name='your_table';
SQLite Autoincrement
SQLite使用特殊的SQLITE_SEQUENCE表跟踪表曾经拥有的最大ROWID。每当创建包含AUTOINCREMENT列的普通表时,都会自动创建并初始化SQLITE_SEQUENCE表。可以使用普通的UPDATE,INSERT和DELETE语句修改SQLITE_SEQUENCE表的内容。但是对此表进行修改可能会干扰AUTOINCREMENT密钥生成算法。进行此类更改之前,请确保您知道自己在做什么。
-轴