首頁 >資料庫 >mysql教程 >如何使用 Laravel Eloquent 和查詢產生器高效地執行批次插入?

如何使用 Laravel Eloquent 和查詢產生器高效地執行批次插入?

Linda Hamilton
Linda Hamilton原創
2025-01-12 20:17:42762瀏覽

How to Efficiently Perform Bulk Inserts with Laravel Eloquent and Query Builder?

使用 Laravel Eloquent/Fluent 批次插入多行資料

本例需要將查詢結果資料插入另一個表,同時將結果轉換為特定格式。主要挑戰在於處理結果中行數的潛在變化。

利用 Laravel 的批次插入功能

幸運的是,Laravel 的 Eloquent 和查詢建構器提供了方便的批次插入方法。您可以利用這些方法來達到預期的結果:

  1. Eloquent 方法:

    <code class="language-php"> $insertData = collect($query->get())->map(function ($row) {
         return [
             'user_id'   => $row->user_id,
             'subject_id' => $row->subject_id,
         ];
     });
    
     Model::insert($insertData->toArray());</code>
  2. 查詢建構器方法:

    <code class="language-php"> $insertData = collect($query->get())->map(function ($row) {
         return [
             'user_id'   => $row->user_id,
             'subject_id' => $row->subject_id,
         ];
     });
    
     DB::table('new_table')->insert($insertData->toArray());</code>

在兩種情況下,$insertData 變數都包含了所需格式的轉換資料。 insert 方法將處理對指定表的批次插入操作。 注意,為了確保insert方法正確處理數據,需要將$insertData轉換為數組,使用->toArray()方法。

以上是如何使用 Laravel Eloquent 和查詢產生器高效地執行批次插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn