J'ai accidentellement supprimé un très grand nombre de lignes d'une table ...
Comment puis-je le restaurer?
J'ai exécuté la requête en utilisant PuTTY .
Je serai reconnaissant si l'un d'entre vous peut me guider en toute sécurité hors de cette ...
Si vous n'avez pas fait de sauvegarde, vous êtes assez confus.
Si vous n'avez pas encore validé la transaction, essayez rollback
. Si vous avez déjà validé la transaction (par commit
ou en quittant le client en ligne de commande), vous devez restaurer les données à partir de votre dernière sauvegarde.
Un "rollback" ne fonctionne que si vous avez utilisé transactions . De cette façon, vous pouvez regrouper des requêtes et annuler toutes les requêtes si l'une d'entre elles échoue.
Mais si vous avez déjà validé la transaction (ou utilisé une requête DELETE standard), le seul moyen de récupérer vos données est de les récupérer à partir d'une sauvegarde effectuée précédemment.
Utilisez la commande BEGIN TRANSACTION
avant de lancer des requêtes. Pour que vous puissiez ROLLBACK
choses à tout moment.
PAR EXEMPLE:
La réponse acceptée n'est pas toujours correcte. Si vous configurez la journalisation binaire sur MySQL, vous pouvez restaurer la base de données à n'importe quel point précédent pour lequel vous avez encore un instantané et un journal bin.
7.5 Récupération ponctuelle (incrémentielle) à l'aide du journal binaire est un bon point de départ pour en savoir plus sur cette fonctionnalité.
En MySQL:
start transaction;
savepoint sp1;
delete from customer where ID=1;
savepoint sp2;
delete from customer where ID=2;
rollback to sp2;
rollback to sp1;
Si vous souhaitez restaurer des données, vous devez d’abord exécuter autocommit = 0, puis exécuter la requête delete, insert ou update.
Après avoir exécuté la requête, exécutez la restauration en arrière ...
J'avais également supprimé certaines valeurs de ma base de développement, mais j'avais la même copie dans la base de données d'assurance qualité. J'ai donc créé un script et sélectionné l'option "type de données dans le script" sur "données uniquement" et sélectionné ma table.
Ensuite, j'ai reçu les instructions insert avec les mêmes données, puis j'ai exécuté le script sur ma base de développement.