如何在 Yii2 中进行多次 UPSERT?

tro*_*roy 3 mysql yii2

我正在使用 Yii2 高级模板。我必须在 MySql 数据库中插入 1000 到 2000 条记录。

是否可以在Yii2中进行多个UPSERT 查询

请帮助我提供您的建议/答案。谢谢。

Tom*_*omi 5

从版本 2.0.14 开始,您可以使用 upsert() 。

您的代码可能如下所示:

$insertValues = [
    'timestamp' => gmdate('YmdH'),
    'entry_id' => $this->id,
    'view_count' => 1,
];
$updateValues = ['view_count' => new \yii\db\Expression('table_name.view_count + 1')];
Yii::$app->db->createCommand()->upsert('table_name', $insertValues, $updateValues)->execute();
Run Code Online (Sandbox Code Playgroud)

您可以在这里找到完整的文档:https ://www.yiiframework.com/doc/api/2.0/yii-db-command#upsert()-detail