197 votes

Obtenir une instruction d'insertion pour une ligne existante dans MySQL

En utilisant MySQL, je peux exécuter la requête :

SHOW CREATE TABLE MyTable;

Il renverra l'instruction de création de table pour la table spécifiée. Cette fonction est utile si vous avez déjà créé une table et que vous souhaitez créer la même table dans une autre base de données.

Est-il possible d'obtenir la déclaration d'insertion pour une ligne ou un ensemble de lignes déjà existantes ? Certaines tables ont de nombreuses colonnes, et il serait bon que je puisse obtenir une instruction d'insertion pour transférer des lignes dans une autre base de données sans avoir à écrire l'instruction d'insertion, ou sans exporter les données au format CSV et importer ensuite les mêmes données dans l'autre base de données.

Pour clarifier, ce que je veux, c'est quelque chose qui fonctionnerait comme suit :

SHOW INSERT Select * FROM MyTable WHERE ID = 10;

Et que l'on me renvoie ce qui suit :

INSERT INTO MyTable(ID,Col1,Col2,Col3) VALUES (10,'hello world','some value','2010-10-20');

10voto

Mosab B. Nazli Points 61

Dans PHPMyAdmin, vous pouvez

  1. cliquez sur copier sur la ligne dont vous voulez connaître les instructions d'insertion SQL :

Select copy

  1. cliquez sur Aperçu SQL :

Select Preview

  1. vous obtiendrez l'instruction d'insertion créée qui la génère

Vous pouvez appliquer cette méthode à plusieurs lignes à la fois en les sélectionnant et en cliquant sur Copier en bas du tableau, puis sur Aperçu SQl.

8voto

Gabe Gates Points 586

La commande suivante permet d'effectuer un dumping dans le terminal sans tous les éléments supplémentaires mysqldump sera affichée autour de l'élément INSÉRER . Cela permet de copier à partir du terminal sans que celui-ci n'écrive dans un fichier. C'est utile si l'environnement restreint l'écriture de nouveaux fichiers.

mysqldump -u MyUserName -pMyPassword MyDatabase MyTable --where="ID = 10" --compact --no-create-info --complete-insert --quick

Utilisation mysqldump --help J'ai trouvé les options suivantes.

-q, --quick Ne pas mettre la requête en mémoire tampon, la transférer directement sur la sortie standard. (Activé par défaut ; utiliser --skip-quick pour le désactiver).

-t, --no-create-info N'écrivez pas d'informations sur la création de la table.

-c, --complete-insert Utiliser des déclarations d'insertion complètes.

--compact Donne une sortie moins verbeuse (utile pour le débogage). Désactive les commentaires de structure et les constructions d'en-tête/pied de page. Active les options options --skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys --skip-set-charset.

7voto

Henrik Points 1843

J'utilise le programme SQLYOG où je peux faire une requête de sélection, pointer sur screenshot les résultats et choisir d'exporter en tant que sql. Cela me permet d'obtenir les instructions d'insertion.

7voto

slava157 Points 61

Si vous souhaitez obtenir une "instruction d'insertion" pour votre table, vous pouvez essayer le code suivant.

SELECT 
    CONCAT(
        GROUP_CONCAT(
            CONCAT(
                'INSERT INTO `your_table` (`field_1`, `field_2`, `...`, `field_n`) VALUES ("',
                `field_1`,
                '", "',
                `field_2`,
                '", "',
                `...`,
                '", "',
                `field_n`,
                '")'
            ) SEPARATOR ';\n'
        ), ';'
    ) as `QUERY`
FROM `your_table`;

En conséquence, vous aurez une déclaration d'insers :

INSERT INTO your_table ( field_1 , field_2 , ... , field_n ) VALUES (valeur_11, valeur_12, ... , valeur_1n) ;

INSERT INTO your_table ( field_1 , field_2 , ... , field_n ) VALUES (valeur_21, valeur_22, ... , valeur_2n) ;

/...................................................../

INSERT INTO your_table ( field_1 , field_2 , ... , field_n ) VALUES (value_m1, value_m2, ... , value_mn) ;

où m - nombre d'enregistrements dans votre_table

5voto

Kevin Bowersox Points 48223

Au sein du banc de travail MySQL, effectuer les tâches suivantes :

  1. Cliquez sur Serveur > Exportation de données

  2. Dans l'onglet Sélection d'objets, sélectionnez le schéma souhaité.

  3. Sélectionnez ensuite les tables souhaitées à l'aide de la liste déroulante située à droite du schéma.

  4. Sélectionnez un emplacement de fichier pour exporter le script.

  5. Cliquez sur Terminer.

  6. Naviguez jusqu'au fichier nouvellement créé et copiez les instructions d'insertion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X