如何更新 postgres 表中的多行 (Yii2)

问题描述 投票:0回答:1

$campaigns
数据数组:

[
...
27 => array:10 [
    "name" => "0ca9b377dd066958_ru_acc9_map86"
    "cid" => "53099327454745088"
    "status" => 2
    "id" => 36842
  ]
...
]

更新前准备:

foreach ($campaigns as $campaign) {
            $id = $campaign['campaign_id'];
            $name = $campaign['name'];
            $status = $campaign['status'];
            $index = Campaign::getIndex($name);
            $aSource = Campaign::aSource($name, $status);
            $streamId = Campaign::getStreamIdByName($name);

            $updateValues[] = [
                'id' => $id,
                'name' => $name,
                'status' => $status,
                'index' => $index,
                'a_source' => $aSource,
                'stream_id' => $streamId,
                'updated_at' => new Expression('NOW()')
            ];
        }

我如何使用

id
ids
的新值更新
$campaigns
name, status, index, a_source, stream_id
的所有行?
请帮助我,我已经尝试了 doc 和 chatGPT 的所有选项,例如:

--批量插入

updated_at


php postgresql yii2
1个回答
0
投票

a) with `ON DUPLICATE KEY UPDATE` b) and `ON CONFLICT (id) DO UPDATE SET`

© www.soinside.com 2019 - 2024. All rights reserved.