事务中数据库查询的时间戳

时间:2015-07-16 18:59:23

标签: php mysql database laravel transactions

我正在使用DB::transactionSoftDeletes

对于那些不熟悉Laravel的人来说,Laravel的SoftDelete功能抽象了数据库中行的设置/查询。删除记录时,字段deleted_at会被赋予时间戳,否则此字段为null。然后,此字段用于查询以仅获取未删除的行。

目前我有一个每天运行的脚本,用于删除超过7天的所有软删除条目。

enter image description here 这是我的问题/问题所在。如果我的DB ::事务跨越for let表示10秒并将结束写入添加到表A 表B ,以便两个表中的条目都有不同的时间戳。

我可以想象一下清理脚本执行时的情况,可以删除条目记录的HALF。

我的问题是

  1. DB :: transaction会为所有记录提供相同的时间戳吗?
  2. 如果不能解决这个问题怎么办?

1 个答案:

答案 0 :(得分:1)

我能看到它工作的唯一方法,就像你说的那样,你的数据不会被部分恢复搞砸似乎是关键任务,就是在受影响的表中包含一个交易号。

需要调整清理程序。除非事务中的所有时间戳超过7天,否则交易不能随后被soft deleted 删除。