根据另一个表中的数据插入新行

时间:2018-06-25 16:36:06

标签: mysql sql

(数据实际上不是日志文件,但这简化了请求)

我在名为log的表中的行中都有日志数据,该表具有特定的起点和终点。例如:

1001 | **start
1002 | log action
1003 | another action
1004 | log action
1005 | another action
1006 | **end
1007 | **start
1008 | log action
1009 | another action
1010 | log action
1011 | another action

我还有另一个名为事件的表,该表存储日志的开始和结束时间,ID和其他一些元数据。

日志表中的数据被批量插入。我希望最好在SQL中执行以下操作:

  1. 提取** start和** end之间的行

  2. 将新行插入具有开始和结束时间的事件中

  3. 使用事件ID更新与该事件相关的行

如果找到的第一个条目是**结束,则应完全跳过此条目并寻找下一个条目。如果找到的集合缺少**结束,它也应该跳过此过程,直到找到下一个集合。因此,在上面的示例中,行1001到1006将用于创建新的事件条目,并将条目ID应用于它们。

如果我运行一个单独的进程(使用BETWEEN从SQL中提取数据,然后执行自己的计算),则此逻辑相对简单,但是通常感觉很混乱。我正在寻找在SQL中执行相同操作的解决方案。

0 个答案:

没有答案