【发布时间】:2011-04-07 19:08:03
【问题描述】:
如何在 Ormlite 中更新表 sqlite_sequence ?我只需要更新序列。如何通过 ORMLite 获取该表?
编辑
我找不到 ORLite 工具来执行此操作,因此我使用简单的 sqlite 查询。在我的类扩展 OrmLiteSqliteOpenHelper 中,我使用 SQLiteDatabase 进行更新。
EDIT2 ;)
在我的项目中,我坚持课程课程和课程周定义。
class Lesson{
@DatabaseField(generatedId=true)
private int id;
...
}
class WeekDefinitions{
@DatabaseField(generatedId=true)
private int id;
@DatabaseField(foreign=true, columnName="lesson_id")
private Lesson lesson;
...
}
现在,当我添加新课程时,id 是递增的。例如
id = 1 Math
id = 2 English
id = 3 Medicine
并且在 weekDefinition 中:
id = 1 lesson_id = 1 nr = 20
id = 2 lesson_id = 1 nr = 22
id = 3 lesson_id = 2 nr = 32
...
id = 12 lesson_id = 3 nr = 3
SQLite 将此行添加到 sqlite_sequence(使用自动增量时)
rowId = 1 name = lesson seq = 3
rowId = 2 name = weekDefinition seq = 12
现在,我从表 Lesson 和 WeekDefinition 中删除所有行。之后 Lesson 和 WeekDef 都是空的,但是 sqlite_sequence 还是一样的。这是问题,因为表课程中的 id 从值 4 开始(课程中 sqlite_sequence 的 seq 并添加 1):
id = 4 Math
id = 5 English
id = 6 Medicine
和星期定义
id = 13 lesson_id = 1 nr = 20
id = 14 lesson_id = 1 nr = 22
id = 15 lesson_id = 2 nr = 32
对于课程 id = 4 ,数学我应该得到 weekDefinitios,但在 weekDefinitions 中,课程 ID 的值只有 1 到 3 这是我的问题。我需要“重置” sqlite_sequence 表(或者有更好的解决方案?)
【问题讨论】:
-
能否请您重新表述您的问题并提供更多详细信息 Bandzio。我不知道你在这里问什么。什么是“sqlite_sequence”?您是否仅尝试从数据库中的表中获取序列号?所以你坚持only的对象有一个生成的id?
-
Bandzio,你真的应该接受其中一个答案;两者都很好,已经使用了 6 个月以上