Припустимо, нам необхідно додати новий запис із назвою «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();


