2013-07-01 4 views
0

Je suis à la recherche d'un moyen de dupliquer toutes les lignes de ma base de données, j'ai essayé de l'exporter puis de l'importer mais j'ai l'erreur de la clé en double.Dupliquer toutes les données dans la même table MYSQL

La raison en est purement à des fins de test, je veux juste une charge de données fictives là-bas pour tester le système que j'ai.

Y at-il une déclaration directe pour cela? Ou existe-t-il un moyen d'exporter toutes les données sauf ID (ou modifier l'ID à MAX(ID) + 1 ou AUTO INCREMENT)?

Répondre

2

Vous pouvez essayer ceci:

INSERT INTO your_table_name(parent_id,priority,text,shortname,weighting,g_or_a, 
    dept,ksf,day_start,day_end,date_start,date_end,depends_on,is_question,budget, 
    ccode,responsible,accountable,consulted,informed) 
(SELECT parent_id,priority,text,shortname,weighting,g_or_a,dept,ksf, 
    day_start,day_end,date_start,date_end,depends_on,is_question,budget,ccode, 
    responsible,accountable,consulted,informed FROM your_table_name); 

Tout d'abord, insérez une ligne dans la table 'your_table_name'. Remplacez your_table_name par le nom de la table dans le code & précédent exécuter le code à plusieurs reprises jusqu'à ce qu'il satisfasse les numéros de ligne requis. Je pense que ça devrait marcher.

+0

Fonctionne grand merci! – Adam

2

Put 1 disque, puis exécutez:

insert into mytable select * from mytable 

10 fois. Cela vous donnera 1024 enregistrements. Continuez jusqu'à satisfaction.

+0

Cela renvoie toujours # 1062 - Dupliquer l'entrée '1' pour la clé 'PRIMAIRE' – Adam

+0

Ah, donc vous avez la clé primaire? Eh bien, alors faites AUTOINCREMENT spécifier la liste des champs dans INSERT et SELECT. –

+0

poster sa structure, je vais vous donner une requête exacte. –

0

Vous pouvez utiliser un INSERT et les valeurs sont SELECT, ne sélectionnez simplement pas la clé primaire et ne la définissez pas dans les champs d'insertion.

Imaginez une table avec 3 champs, the_pk, field_1, field_2

Quelque chose comme

INSERT INTO the_table(field_1, field_2) (SELECT field_1, field_2 FROM the_table) 
Questions connexes