В laravel есть метод upsert, который позволят производить массовую вставку/массовый апдейт строк
уникальными значениями. Выглядит это примерно так.
DB::table('table')->upsert([
[
'id' => 1,
'value' => 'value1',
],
[
'id' => 2,
'value' => 'value2',
],
[
'id' => 3,
'value' => 'value3',
],
], ['id']);
Каждому айдишнику присваивается свое уникальное значение. И все это массово для кучи строк.
Не знаю что там под капотом, может это все делается не одним запросом, а кучей, но все же.
Метод update не умеет в
уникальные значения.
Ему можно скормить только одно значение, которое он присвоит
всем строкам, удовлетворяющим условию.
Почему так, и есть ли способы через laravel (ну или сырым sql запросом) произвести массовый апдейт, каждому айдишнику присваивая уникальное значение ? Или только вариант обновлять каждую строчку отдельным запросом ?