首页 > 解决方案 > 为什么 Laravel Upsert 会调整 auto_increment 值?

问题描述

好的,我正在 Laravel 中进行批量更新,它基于匹配字段不是主键,但是它是唯一的。

 $array_to_insert = [];

        foreach ($array as $account) {

            $record_array = [];

            $record_array['name'] = $account['name'];
            $record_array['coingecko_id'] = $account['id'];
            $record_array['identifier'] = strtoupper($account['symbol']);
            $record_array['current_price'] = $account['current_price'];
            $record_array['market_cap'] = $account['market_cap'];
            $record_array['market_cap_rank'] = $account['market_cap_rank'];
            $record_array['type'] = "cryptocurrency";

            array_push($array_to_insert,  $record_array);

        }

        $result = CryptoAccount::upsert($array_to_insert, ['identifier'], ['name','coingecko_id','identifier','current_price','market_cap','market_cap_rank']);

        var_dump($result);

它一次查看大约 350 个结果,并且 auto_increment 值上升相同,即使它只更新大多数行而不插入它们。

标签: phplaravel

解决方案


推荐阅读