【发布时间】:2016-01-01 04:08:46
【问题描述】:
场景:
我有一个表,其中有一个名为“Membership_ID”的字段,这不是表的主键,也不是自动递增的。 基本上它是一个六位数的 UNSIGNED_ZEROFILL INT 类型,需要为每条新记录递增。
所以我在做什么,我通过 created_at 获取表中的最后一条记录,并增加它的 members_id:
$last_member = Model::orderBy('created_at', 'desc')->first();
$new_id = $last_member->membership_id++;
奇怪的是,有几条记录重复了 members_id。经过检查,我注意到这些具有重复的 members_id 的记录的 created_at 时间几乎相同。
现在我把它改成了:
$last_member = Model::all()->last();
$new_id = $last_member->membership_id++;
彻底测试过,到目前为止没有重复 Membership_ID。
问题是为什么membership_id 在第一种情况下会重复。在 created_at 时间戳中,值并不完全相似,有几秒钟的差异,或者在某些情况下差异只有几分钟?
【问题讨论】:
标签: php mysql laravel laravel-4 eloquent