在重复的行上重复故意使DB插入失败可以吗

  • 本文关键字:失败 插入 DB 故意 android sql
  • 更新时间 :
  • 英文 :


在插入sql数据库时,可以点击许多"插入时重复行"吗?或者有更好的方法吗?

我正在从我的服务器下载"评论",并在我的android手机上的列表视图中显示它们。。

以下是我的操作方法:

1-每当我显示listview时,我都会通过xml从服务器获取最后15条注释。。

2-我在电话上将注释插入到本地sql数据库中

3-我使用一个适配器来更新listview,该适配器从本地sql数据库加载数据。

我每30秒重复一次步骤1、2和3。当活动点击Resume时,我也会重复步骤1、2中和3。。。

除非另一个android客户端上传了新的评论,否则从服务器获取的所有评论都是重复的,并且将它们插入数据库会返回SQLConstraintException,因为我不允许重复相同的评论。

这样可以吗?我每30秒抛出10-15行这个异常。。有没有更好的方法不会影响表现?我不认为在插入之前检查行是否存在有什么意义,因为这肯定会更慢。。当我查询变量时,我可能会将其传递给服务器,告诉它我的最新评论是什么。

我确信许多人已经走到了这个十字路口。我们该从这里去哪里?

谢谢你的讨论。。

如果你的服务器的数据库有一个连续的增量键,那么是的,我只需要用一个附加条件"…AND SeqIdField>[my last id]"进行查询。如果没有返回任何记录,则只需重置计时器并等待再次查询。

即使没有顺序id,但您可以在特定日期/时间之后插入记录,也只需确保该日期/时间包含在结果中,并将最新的日期/时间作为参数返回。如果你不想/不需要在本地设备上存储该日期/时间,那么只需将最新的日期/时间保存在某个地方,这样当你的应用程序再次运行时,你就知道在哪里可以备份。

最新更新