(数据实际上不是日志文件,但这简化了请求)
我在名为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中执行以下操作:
提取** start和** end之间的行
将新行插入具有开始和结束时间的事件中
使用事件ID更新与该事件相关的行
如果找到的第一个条目是**结束,则应完全跳过此条目并寻找下一个条目。如果找到的集合缺少**结束,它也应该跳过此过程,直到找到下一个集合。因此,在上面的示例中,行1001到1006将用于创建新的事件条目,并将条目ID应用于它们。
如果我运行一个单独的进程(使用BETWEEN从SQL中提取数据,然后执行自己的计算),则此逻辑相对简单,但是通常感觉很混乱。我正在寻找在SQL中执行相同操作的解决方案。