it-roy-ru.com

Есть ли способ отката после коммита в MySQL?

Я сделал большую ошибку, что обновил таблицу без выражения 'where' в MySQL: '(

Это автоматически совершается.

Есть ли способ откатиться с него?

22
Johnny Lim

Нет, нет запроса, который "отменит" зафиксированный запрос на изменение данных.

Если у вас есть резервная копия базы данных, вы можете восстановить ее и использовать инструменты DBA (в случае MySQL это mysqlbinlog ), чтобы «воспроизвести» все запросы на изменение данных из журналов с момента резервного копирования обратно в базу данных, но пропустите проблемный запрос.

Если у вас нет резервной копии и всех журналов со времени этой резервной копии, вы ничего не сможете сделать, чтобы восстановить данные.

12
Bohemian

Посмотрите журналы транзакций. Я буду обновлять с дополнительной информацией, но журналы могут оставаться только в течение ограниченного времени, поэтому время имеет решающее значение!

Смотрите: http://dev.mysql.com/doc/refman/5.0/en/point-in-time-recovery.html

1
Kyle

Если вы включили mysql binlog, а также он имеет формат ROW, то вы можете получить значение для каждой строки до и после обновления. Используя это, вы можете восстановить состояние таблицы.

0
Srinivash Arumugam