我有几个表,每次用户登录应用程序时都会有新数据。我有一个KEY_ROWID
列autoIncrement
。我希望它始终以1开头。
我尝试在插入新数据之前截断表。我收到一个错误:
“android.database.sqlite.SQLiteException:near”TRUNCATE“:语法 错误(代码1):,编译时:TRUNCATE TABLE StaffListTable“
Sugestions非常感谢。
private static final String CREATE_TABLE_STAFFLIST = "CREATE TABLE " + TABLE_STAFFLIST + " ("
+ KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_STAFFID + " TEXT NOT NULL, "
+ KEY_STAFFNAME + " TEXT NOT NULL);";
答案 0 :(得分:2)
它非常简单,因为你要截断表值,我知道你不必保护它们或者备份它们。在这种情况下,只需删除表即可。
在onUpdate()方法中,写
db.execSQL("DROP TABLE IF EXISTS "+DATABASE_TABLE); //and call onCreate again
onCreate(db);
如果您还有其他需要,请告诉我。快乐的编码。 :)
答案 1 :(得分:0)
sqlite中没有TRUNCATE
。如果确实需要,可以使用DROP
删除表。
答案 2 :(得分:0)
有两种方法可以实现truncate(SQLite没有)。您可以在此处按照其他答案DROP然后创建。
或者,您可以执行DELETE清空表,然后从sqlite_sequence中删除表的条目:
DELETE FROM sqlite_sequence
WHERE name = 'table_name'
sqlite_sequence保存具有此类列的表的最后使用的自动增量值。删除给定表的行将使自动增量键再次从1开始。