繁体   English   中英

从静态文件JSON Feed更新数据库

[英]Updating Database From Static File JSON Feed

我有一个PHP脚本来提取一个静态的JSON文件,并每10秒更新一次。 它具有发生的一些事件的详细信息,并且仅添加到JSON文件的顶部。 然后,我将它们插入MySQL数据库。

因为每次每次拉文件我都必须拉每个事件,所以我只会插入新事件。 一种简单的方法是在数据库中搜索事件(主键相同),但是我每天谈论的事件约为4000个,因此我不希望有那么多查询来查看它是否存在。

我知道INSERT IGNORE ,但是看起来它仅使用PRIMARY_KEY来执行此操作。

我该怎么做(最好是轻松地)以防止两个键重复?

例:

我有一个带有以下各列的表events

  • ID(实际上无关)
  • event_id(我需要从源代码存储)
  • action_id(许多action_ids属于一个event_id)
  • 时间戳
  • 随你...

我的数据是我的JSON像这样在第一次提取时出现:

event_id|action_id|...
   1    |   1
   1    |   2
   1    |   3
   2    |   1
   2    |   2
   2    |   3

然后,下一个是:

event_id|action_id|...
   1    |   1
   1    |   2
   1    |   3
   1**  |   4**
   1**  |   5**
   2    |   1
   2    |   2
   2    |   3
   2**  |   4**

希望插入标有星号的行,而忽略其他行。 请记住, primary_keyid完全在此表中,我只是将其用于无处不在。

我可以使用什么命令来“插入”我拉出的每个事件,但只能通过两列event_idaction_id添加不会重复的事件。

谢谢。

创建两个列的唯一索引。

CREATE 
    UNIQUE INDEX event_action
    ON tablename (event_id, action_id)  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM