處理大型資料集通常涉及將大量行插入資料庫表中。 手動處理每一行可能效率很低。 Laravel 的 Eloquent ORM 和查詢產生器為批量插入提供了優雅的解決方案,顯著提高了效能。
要從查詢結果集中插入數據,同時保留行結構,批量插入是理想的選擇。 Eloquent 提供了一個簡單的方法:
<code class="language-php">$data = $query->select(['user_id', 'subject_id'])->get()->toArray(); Model::insert($data);</code>
注意添加toArray()
。這對於確保 insert
方法的資料格式正確至關重要。
或者,查詢產生器提供類似的功能:
<code class="language-php">DB::table('table_name')->insert($data);</code>
請記住,Eloquent 的 insert
方法會觸發模型變異器(包括時間戳記)。如果您需要繞過這些,查詢產生器提供更直接的控制。
這兩種方法都可以透過單一資料庫查詢有效地插入多行,無論 $data
陣列的大小如何,這使得它們比迭代插入更有效率。
以上是如何在 Laravel 中使用單一 Eloquent 查詢將多行插入資料庫表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!