在用Greendao的时候,比如我插入了3条数据,主键id是1 2 3 ,当我把这三条数据用 loadall 获取回来,删除之后,再插入新的数据,主键id 是 4 5 6。怎么回事?是我删除方法的问题吗?
这个是插入数据,然后删除。红圈里的是主键id。
这个是删除之后重新插入的数据,我想为什么不是重新开始分配,而是接着上次的来
在用Greendao的时候,比如我插入了3条数据,主键id是1 2 3 ,当我把这三条数据用 loadall 获取回来,删除之后,再插入新的数据,主键id 是 4 5 6。怎么回事?是我删除方法的问题吗?
这跟框架没关系。你如果稍微了解下数据库就应该知道,普通的delete命令不会重置表的自增值,要用truncate,truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间。至于Greendao框架如何操作truncate命令,我就不清楚了,你可以百度一下。不过你可以 删除表后重建表
Database database = dao.getDatabase();
DaoMaster.dropAllTables(database, true);
DaoMaster.createAllTables(database, true);