2010-05-15 14 views
7

que acaba de ejecutar un comandoCómo retrotraer los efectos de la última consulta MySQL ejecutado

update sometable set col = '1'; 

por error sin especificar la condición en la que. ¿Es posible recuperar la versión anterior de la tabla?

+4

consideran '--que-am-a-dummy' opción cuando u ur regístrese para db..it prohibir cualquier instrucción de eliminación/actualización sin cláusula' WHERE' – slier

Respuesta

9

A menos que ...

  1. iniciado una transacción antes de ejecutar la consulta, y ...
  2. no ya confirmar la transacción

... pues no, se No tengas suerte, salvo las copias de seguridad de versiones anteriores de la base de datos que podrías haber hecho tú mismo.

(Si no usa transactions al ingresar manualmente consultas, es posible que en el futuro desee evitar dolores de cabeza como el que probablemente tenga ahora. Son invaluables para mitigar el tipo realizado de 5 segundos más tarde de error.)

+0

que había tomado una copia de seguridad de la base de datos que es no muy diferente de la versión actual. así que esta vez guardado. –

1

No. MySQL tiene transaction support para algunos tipos de tablas, pero como hace esta pregunta, apuesto a que no la está usando.

Todo el mundo hace esto una vez. Es cuando lo haces dos veces tienes que preocuparte :)

2

Considera habilitar sql_safe_updates en el futuro si te preocupa volver a hacer este tipo de cosas.

SET SESSION sql_safe_updates = 1 
Cuestiones relacionadas