重置android数据库中的行号计数

时间:2011-12-22 07:54:56

标签: java android database methods

我需要将行号计数重置为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;

我试图这样做,但是eclipse向我显示错误:“sqlite_sequence无法解析为变量”

public void resetAutoNumbering ()
{

     mDb.update(sqlite_sequence, args, KEY_ROWID + "=" + rowId, null);

}

我能做什么以及如何做?

2 个答案:

答案 0 :(得分:2)

发现这是类似问题的答案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密钥生成算法。在进行此类更改之前,请确保您知道自己在做什么。

-axel

答案 1 :(得分:0)

您在程序中使用sqlite_sequence但在此之前使用了DATABASE_TABLE代替sqlite_sequence。将您的sqlite_sequence更改为DATABASE_TABLE