Sqlite数据库优化,替换已删除的条目

时间:2012-07-03 15:01:31

标签: android sqlite

我在Android中为我的应用程序创建了一个包含列ID,通道,名称的数据库 我可以创造好,一切正常。 我的ID附加到特定于该频道的命令。 当我有15个频道并且我去删除频道4时,它会创建频道16而不是先替换频道4.

我是否可以使用在添加值之前首先搜索“空”RowIds的方法?

2 个答案:

答案 0 :(得分:0)

如果ID列是自动递增,则无法替换4.每次插入时列值前进1。

你可以删除自动增加照顾自己的ID。但为此你必须在每个插入中搜索缺少的数字(效率不高)。也许你也可以在一些辅助表中保存已删除的ID。这可以帮助您避免查找。但不确定它是否值得...

答案 1 :(得分:0)

如果插入发生唯一约束违规,则会更新行。因此,示例中的ID列需要在数据库模式中具有PRIMARY KEY约束才能更新行

contentValue c;
SQLiteDatabase db=getWritableDatabase();
db.replace("table_name", null, c);