2010-08-11 5 views
-1

J'ai une table qui a 7000 lignes,
J'ai ajouté une nouvelle colonne à cette table
La table a une date et heure mysql donc.restaurer partiellement à partir de sql dump?

Quand je mis à jour la table pour remplir cette nouvelle table à jour le datetime,

Je pris une décharge sql juste avant que je l'ai fait la mise à jour maintenant je dois utiliser le dump sql pour revenir datetime arrière (et seulement cette colonne).

Comment faire cela?

Répondre

0

Il y a plusieurs façons dont je peux penser à faire ceci de haut en bas de ma tête. Premièrement, créez une autre base de données mysql et chargez la sauvegarde dans cette base de données (assurez-vous qu'elle ne se chargera pas dans la première base de données à partir d'une commande d'utilisation), puis utilisez les données de cette base de données pour construire la base de données. mettre à jour les requêtes pour le premier. Le second moyen, plus facile et plus hack, consiste à ouvrir la sauvegarde dans un éditeur de texte, à extraire uniquement cette table et à rechercher et remplacer pour créer des instructions de mise à jour pour cette colonne basée sur la clé primaire au lieu des insertions. Vous devez être capable de trouver et de remplacer les motifs. Une troisième méthode consisterait à charger la sauvegarde dans un outil sql abstrait en lui permettant d'effectuer l'analyse syntaxique et d'écrire de nouvelles requêtes à partir des données dans les arborescences de syntaxe abstraite.

Une quatrième possibilité, encore une fois hackish, si ce n'est pas un système live, est d'annuler et de ré-exécuter les transformations les plus récentes (seulement si elles sont simples).

0

Restaurez le vidage sur une deuxième table. Sélectionnez l'ID et le datetime de cette table. Utilisez ces résultats pour mettre à jour les lignes de la table d'origine correspondant aux ID que vous avez.

Questions connexes