我刚刚为我的用户表添加了一个UUID。
我想使用唯一的UUID更新所有记录。
在我的播种机中,我有以下代码生成一个UUID并填充数据库中的新列。但是,生成的UUID在每一行中都是相同的。
public function run()
{
DB::table('users')->update([
'public_id' => Uuid::generate(4)->string
]);
}
我希望为数据库中的每个用户生成UUID。因此,每一行都有一个唯一的UUID。
答案 0 :(得分:5)
它不起作用,因为它仅对所有用户数据使用一个生成的uuid。
您需要遍历每个模型数据并生成唯一的uuid并保存。
public function run(){
$users = \App\User::get();
try{
DB::beginTransaction();
foreach($users as $user){
$user->public_id = Uuid::generate(4)->string;
$user->save();
}
DB::commit();
}
catch(Exception $e){
DB::rollback();
}
//if incase you get exception during database seeding.
}