我有一个正在接收传感器数据的应用程序。作为说明,假设预期范围在 0.01 到 10 之间。在这种情况下,在迁移中我可能会遇到类似的情况:
$table->float('example',5, 2)
这样我就能够处理超出预期范围的数量级。然而,传感器可能会出现故障并发送 10 000 个值。由于传感器正在发送一系列值,因此可能并非所有数据都不正确,因此最好仍将数据写入 DB。对于初始插入,我使用下面的代码,该代码按预期工作:
DB::table($tableName)->insertOrIgnore($insert_array);
然而,在某些情况下,传感器可以重新发送数据,在这种情况下需要更新记录。超出范围的值有可能保留在数组中,在这种情况下,下面的更新语句将抛出超出范围的错误:
DB::table($tableName)->where('$some_id','=', $another_id)->update($insert_array);
我无法找到类似于“updateorignore”功能的东西。处理更新此记录的最佳方法是什么?请注意,我不能简单地将其放入 try catch 中,因为该表将是某些子表的父表,并且忽略它会导致一些孤立的条目。
侃侃无极
拉丁的传说