Допустим нам необходимо вставить новую запись с названием "My Product 0001" в таблицу product или обновить поле visits, если запись уже существует. Поле name - уникальное, именно по полю name метод upsert поймет существует ли запись для обновляния или нужно ее добавлять.
upsert($table, $insertColumns, $updateColumns = true, $params = [])
Upsert и QueryBuilder:
$sql = $queryBuilder->upsert('product', [ 'name' => 'My Product 0001', //уникальное поле 'visibility' => 1, 'visits' => 1 ], [ 'visits' => new \yii\db\Expression('visits + 1'), ], [] );
Upsert и createCommand:
Yii::$app->db->createCommand()->upsert('pages', [ 'name' => 'My Product 0001', //уникальное поле 'visibility' => 1, 'visits' ], [ 'visits' => new \yii\db\Expression('visits + 1'), ], [])->execute();
Комментарии
Комментарии отсутствуют, Вы можете быть первым