Maison >base de données >tutoriel mysql >Comment dupliquer efficacement des lignes dans MySQL avec de nombreuses colonnes ?

Comment dupliquer efficacement des lignes dans MySQL avec de nombreuses colonnes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-11 01:57:02544parcourir

How to Efficiently Duplicate Rows in MySQL with Many Columns?

Dupliquer une ligne dans MySQL : surmonter le défi de plusieurs colonnes

Problème :

Copier une ligne dans la même table peut être un défi lorsqu’il s’agit de traiter un grand nombre de colonnes. La méthode traditionnelle implique de lister explicitement toutes les colonnes dans l'instruction SELECT, mais cela devient peu pratique avec des tables étendues.

Solution proposée :

L'utilisation d'une table temporaire comme intermédiaire peut contourner le problème de la spécification de chaque colonne. Cependant, cela implique de créer une table temporaire avec des colonnes identiques et d'exécuter plusieurs instructions pour le processus de duplication.

Technique de Leonard Challis :

Leonard Challis propose une approche alternative qui simplifie le processus :

<br>CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE Primarykey = 1;<br>UPDATE tmptable_1 SET Primarykey = NULL;<br>INSERT INTO table SELECT * FROM tmptable_1; <br>DROP TEMPORARY TABLE IF EXISTS tmptable_1;<br>

Avantages :

  • Utilise une table temporaire pour éviter de spécifier manuellement les colonnes .
  • Définit la clé primaire sur NULL pour la table temporaire, permettant à MySQL d'attribuer une valeur unique.
  • Supprime la table temporaire une fois terminée, évitant ainsi l'encombrement.

Considérations supplémentaires :

  • Pour vous assurer qu'une seule ligne est insérée, envisagez d'ajouter LIMIT 1 à la ligne INSERT INTO.
  • Ajoutez la valeur de la clé primaire au nom de table temporaire pour une identification plus facile.

Conclusion :

La technique de Leonard Challis fournit une solution simple et efficace pour dupliquer des lignes dans des tableaux comportant de nombreuses colonnes. Cela évite d'avoir à lister manuellement les colonnes, réduisant ainsi les erreurs potentielles et simplifiant le processus.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn