代码之家  ›  专栏  ›  技术社区  ›  Mako212

当添加新数据时,是否有一种方法可以自动在MySQL中删除和插入数据?

  •  0
  • Mako212  · 技术社区  · 6 年前

    INSERT 自动工作。

    现在我在MySQL中有两个表,让我们调用它们 Main ,及 NewWeek

    新周刊 就是我从R发送输出的地方,我基本上需要做:

    /* delete any data already imported from NewWeek */
    DELETE FROM Main
    WHERE Main.`Date` = (SELECT max(Date) FROM NewWeek);
    
    INSERT INTO Main Select * FROM NewWeek;
    

    新周刊 DELETE 语句,以确保不创建重复项。

    我通过AmazonRDS运行MySQL,我相信这会给使用触发器带来一些挑战,所以我不确定这是否是一种选择。

    1 回复  |  直到 6 年前
        1
  •  0
  •   dognose    6 年前

    当您开始在表之间移动(相等)数据时,很可能是数据库布局有问题。

    就你而言,我建议如下:

    • 直接将记录的数据插入主表,而无需“周表”。
    • 如果需要区分这些条目,请在查询数据时使用动态最小/最大日期(与您一样),或者如果是关于数据批准的,请使用布尔列(批准的真/假)。

    因此,每个“记录”都将添加“approved=false”-并且每周一次,当您对数据满意时,您只需将该列更新为“true”。