2013-08-27 4 views
0

J'ai un serveur MySQL qui a une base de données appelée "Backup". Il n'a qu'une seule table avec le nom "stockage".La commande MySQL "source" remplace la table

Dans la base de données de sauvegarde, la table de stockage contient environ 5 millions de données.

Maintenant, je voulais ajouter de nouvelles lignes à la table en utilisant la commande "source" dans la ligne de commande SQL.

Alors qu'est-ce happend est que la source téléchargé tous les nouveaux fichiers de la table, mais il écrasait les entrées existantes (semble qu'il a d'abord supprimé toutes les données)

Ce que je dois dire est que le fichier SQL Je veux mettre à jour provient d'un autre serveur où cette table a le même nom et la même structure que "stockage".

Ce que je veux est d'ajouter les nouvelles entrées qui sont dans le fichier sql à celui de ma base de données. Je ne veux pas les écraser.

La structure dans les deux tables est exactement la même. J'utilise la base de données de sauvegarde comme son nom l'indique pour les utilisations de sauvegarde, de sorte que de temps en temps je peux sauvegarder mes données.

Quelqu'un at-il une idée de comment résoudre ce problème?

Répondre

1

Regardez dans le fichier .sql que vous lisez avec la commande SOURCE, et de supprimer les DROP TABLE et CREATE TABLE déclarations qui y apparaissent. Ils sont la cause de l'écrasement de votre table; ce qui se passe réellement, c'est que la table est remplacée.

Vous pouvez également utiliser SELECT ... INTO OUTFILE et LOAD DATA INFILE comme une manière plus rapide et moins potentiellement destructrice d'obtenir des données d'un serveur à l'autre dans un fichier.

+0

Merci! J'ai essayé les deux voies et la seconde est beaucoup plus rapide. – Max

Questions connexes