upsert() - масовий insert/update
Треба масово вставити або оновити дані?
upsert() робить insert або update у межах одного запиту.
Як працює:
- Вказуєте унікальні колонки для пошуку
- Якщо запис існує - оновлюється
- Якщо ні - вставляється
Порада: ідеально для синхронізації з зовнішніми сервісами.
// Масове оновлення/створення користувачів
User::upsert(
[
['email' => 'john@ex.com', 'name' => 'John', 'age' => 30],
['email' => 'jane@ex.com', 'name' => 'Jane', 'age' => 25],
['email' => 'bob@ex.com', 'name' => 'Bob', 'age' => 35],
],
['email'], // Унікальне поле
['name', 'age'] // Поля для оновлення
);