Question

Pour le code test je copier des données à partir d'une base de données en direct à une base de données de test en utilisant l'option « Copier différents hôte » de SQLYog. La plupart du temps, cela est correct. Mais pour certaines tables l'ensemble de données est absolument énorme et je seulement besoin d'un sous-ensemble relativement faible des données pour les tests. La copie de dialogue différent hôte vous donne la possibilité de la structure ou la copie que la structure et les données.

Si je ne veux que des données partielles, je dois exécuter une requête select * on table where condition, exporter les résultats comme une requête SQL, l'importation de cette requête dans l'hôte de test et l'exécuter. Bien que cela fonctionne, il est pas exactement une procédure amusante, en particulier circonstances données où même le « petit » sous-ensemble de données de test est encore beaucoup de lignes. Si certaines des données a déjà été recopié que cela ajoute de nouvelles complications, comme je dois écrire une requête pour obtenir une liste de clés sur la cible, puis ajouter une condition de where key not in (key list) sur la principale condition.

Y at-il un moyen d'obtenir la « copie à un hôte différent » fonction pour copier uniquement de manière sélective des lignes à la base de données cible?

Était-ce utile?

La solution

Il est actuellement impossible d'utiliser une condition WHERE sur des lignes individuelles dans la SQLyog outil de copie. Tant que seule une seule table est sélectionnée pour la copie, il est OK, mais avec plus de tables, il ne sera pas de sens.

Ce que vous pouvez faire maintenant est de créer une petite table « factice » de la source et de copier celui-ci. Le flux de travail peut être comme:

1) CREATE TABLE newtable AS SELECT * FROM oldtable OÙ ...

2) Copiez maintenant newtable en utilisant GUI SQLyog et déposer ensuite sur la source si nécessaire

3) RENAME newtable sur la cible, si nécessaire

Cela permettra de réduire le trafic réseau à considérer que seules les lignes que vous souhaitez transférer. Et vous éviterez l'exportation vers un fichier comme la « réduction » est maintenue à l'intérieur du serveur source (ne concerne pas le système de fichiers ou d'un réseau).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top