La gestion de grands ensembles de données implique souvent l'insertion de nombreuses lignes dans les tables de la base de données. Le traitement manuel de chaque ligne peut s'avérer inefficace. L'ORM Eloquent et le générateur de requêtes de Laravel fournissent des solutions élégantes pour les insertions en masse, améliorant considérablement les performances.
Pour insérer des données à partir d'un ensemble de résultats de requête tout en préservant la structure des lignes, une insertion groupée est idéale. Eloquent propose une méthode simple :
<code class="language-php">$data = $query->select(['user_id', 'subject_id'])->get()->toArray(); Model::insert($data);</code>
Notez l'ajout de toArray()
. Ceci est crucial pour garantir que les données sont dans le format correct pour la insert
méthode.
Alternativement, le générateur de requêtes fournit une fonction similaire :
<code class="language-php">DB::table('table_name')->insert($data);</code>
N'oubliez pas que la méthode insert
d'Eloquent déclenche des mutateurs de modèle (y compris les horodatages). Si vous devez les contourner, le générateur de requêtes offre un contrôle plus direct.
Les deux méthodes insèrent efficacement plusieurs lignes avec une seule requête de base de données, quelle que soit la taille du $data
tableau, ce qui les rend bien plus efficaces que les insertions itératives.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!