【问题标题】:SQLITE import records, export only new recordsSQLITE 导入记录,只导出新记录
【发布时间】:2016-08-30 20:33:47
【问题描述】:

我有每小时都会导入到表中的记录。这些记录通常是重复的。我想删除任何重复项,记下哪些记录是新的,然后将它们复制/移动/导出到其他地方。

我该怎么做?

【问题讨论】:

  • 我还没有尝试过任何东西。我是新手,目前正在学习。
  • 好吧,欢迎来到 SO,您应该阅读以下内容:stackoverflow.com/help/on-topic
  • 据我了解,您的建议只会从查询中删除重复项,而不是从实际表中删除,对吗?示例: SELECT DISTINCT field2 FROM field2;我想从表中删除重复项。
  • Little me 将您重定向到 Stackoverflow 中的另一个有用页面,以便以更好的形式提出您的问题:stackoverflow.com/help/mcve
  • 如何将每小时的所有记录导入临时表,在该表上删除与主表匹配的行,然后您就可以将新行插入到主表中表并导出,然后在下一批之前清除临时表。

标签: sqlite


【解决方案1】:

我创建了两个相同的表。我最初将数据填充到 TableA 中,然后将 TableA 中的所有内容复制到 TableB 中。

INSERT INTO TableB SELECT * FROM TableA;

当新数据流入 TableA 时,我会去:

    DELETE FROM TableA
WHERE EXISTS
  (SELECT *
   FROM TableB
   WHERE TableA.field1 = TableB.field1);

然后,我对 TableA 中的数据做我需要做的事情,然后再次将所有内容从 TableA 复制到 TableB。

INSERT INTO TableB SELECT * FROM TableA;

随着新数据流入 TableA 并重复,重复频率。这只会在 TableA 中保留“新鲜”数据。请告知是否有更优雅的解决方案。

再次感谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2011-01-22
    • 2011-08-10
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多