Je suis nouveau sur MySQL. Je souhaite copier le contenu d'une table dans une autre table de la même base de données. Fondamentalement, je voudrais insérer dans une table à partir d'une autre table. Y a-t-il un moyen facile de faire cela?
118
Si la table n'existe pas, vous pouvez en créer une avec le même schéma comme ceci:
Ensuite, pour copier les données sur:
la source
SELECT * INTO newTable FROM sourceTable
dans w3school , pourquoi il ne fonctionne pas dansMySQL
SELECT ... INTO
est destiné à exporter une table vers un fichier de sortie, ou vers des variables; pas directement dans une table. Voir dev.mysql.com/doc/refman/5.7/en/select-into.htmlSi table1 est volumineuse et que vous ne souhaitez pas la verrouiller pendant la durée du processus de copie, vous pouvez effectuer un vidage et chargement à la place:
la source
show processlist
, je ne pouvais voir aucune requête en cours d'exécution. Je ne sais pas quel est le problème.Cela a fonctionné pour moi,
CREATE TABLE newtable LIKE oldtable;
Réplique la nouvelle table avec l'ancienne table
INSERT newtable SELECT * FROM oldtable
;Copie toutes les données de ligne dans une nouvelle table.
Je vous remercie
la source
Si vous souhaitez créer et copier le contenu en un seul coup, utilisez simplement le SELECT:
la source
Cela a fonctionné pour moi. Vous pouvez rendre l'instruction SELECT plus complexe, avec les clauses WHERE et LIMIT.
Commencez par dupliquer votre grande table (sans les données), exécutez la requête suivante, puis tronquez la table plus grande.
Super simple. :-)
la source
Il crée simplement une nouvelle table avec la même structure que celle de la table source et copie également toutes les lignes de source_table dans target_table.
Si vous avez besoin de copier certaines lignes dans target_table, appliquez une condition à l'intérieur de la clause where
la source
Essaye ça. Fonctionne bien dans mon Oracle 10g,
la source