相同的功能同时执行但不给出预期的输出

时间:2017-12-25 08:45:41

标签: php mysql apache laravel

这是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   

0 个答案:

没有答案