2010-12-01 31 views
4

Je suis à mi-chemin Supposons que par l'exécution d'une importation, et au lieu de courirSi je supprime une requête de suppression dans mysql, toutes les lignes seront-elles sauvegardées?

SELECT COUNT(*) FROM table_being_imported 

je frappe ctrl +R, le type table_being_im et le retour a frappé, pour trouver à mon horreur que je viens délivré

DELETE FROM table_being_imported 

Oups. Alors je frappe ctrl +C et dit me:

Ctrl-C -- sending "KILL QUERY 627" to server ... 
Ctrl-C -- query aborted. 
ERROR 1317 (70100): Query execution was interrupted 

Ne serait-il avoir supprimé l'une des lignes? Juste hypothétiquement, bien sûr ...

Répondre

9

hypothétiquement, ... some of those rows are now gone.

Pendant UPDATE ou DELETE, le drapeau est vérifié après tuer chaque bloc lu et après chaque ligne mise à jour ou supprimé. Si le drapeau kill est activé, l'instruction est annulée. Notez que si vous n'utilisez pas de transactions, les modifications ne sont pas annulées.

Non que ce soit le temps de le mentionner, mais c'est pourquoi les requêtes transactionnelles sont les meilleurs lorsqu'ils traitent des données critiques de l'entreprise.

+0

Histoire vraie;) ... –