这是table1
id price table2_id
1 0 1
2 0 1
这是table2
id total_price
1 0
这是我们的表结构。当table1价格更新时,我们更新table2 total_price。以下是示例代码段
function updateOnTable1($price){
$table1->update(['price' => $price]);
$table2->update(['total_price' => calculateTotalPrice($table1->table2_id)])
}
function calculateTotalPrice($table2_id) {
return $table1->where('table2_id', $table2_id)->sum('price');
}
但问题是当table1中的两个价格在完全相同的第二个表2更新时,total_price未正确更新。
示例:当table1 id 1的价格更新为2且table1 id 2的价格更新为3时完全相同的秒 id2的table2中的total_price未更新为5.它仍然是等于0.但是这个问题可能发生在数千个序列中。最终输出是
表1
id price table2_id
1 2 1
2 3 1
表2
id total_price
1 0