2012-06-06 12 views
11

Próbowałem zrobić aktualizację na serwerze MySQL i przypadkowo zapomniałem dodać dodatkową klauzulę WHERE, która miała edytować jeden wiersz.Cofnij polecenie mysql UPDATE

Mam teraz 3500 wierszy edytowanych z powodu mojego błędu.

Mogę mieć kopię zapasową, ale wykonałem mnóstwo pracy od czasu ostatniej kopii zapasowej i po prostu nie chcę marnować tego wszystkiego z powodu 1 złego zapytania.

Proszę mi powiedzieć, że jest coś, co mogę zrobić, aby to naprawić.

+4

Założę się, że życzyłeś sobie transakcji –

+0

Niestety, jeśli nie zrobiłeś kopii zapasowych, nie sądzę, że możesz coś zrobić. – srchulo

+0

Czy włączony jest Dziennik binarny? –

Odpowiedz

5

Jeśli dokonałeś transakcji, nadszedł czas, aby odkurzyć tę kopię zapasową, przepraszam. Ale do tego służą kopie zapasowe. Zrobiłem kiedyś coś takiego ... raz.

8

Po prostu pomysł - czy można przywrócić kopię zapasową do nowej bazy danych, a następnie wykonać kwerendę krzyżowej bazy danych, aby zaktualizować kolumnę na podstawie danych, które były kiedyś?

+1

Nigdy wcześniej tego nie robiłem? Wszelkie sugestie, jak to zrobić? – Naveen

+1

Do przywracania - chciałbym, aby mój DBA to zrobił (jestem programistą, a nie DBA). W przypadku kwerendy opartej na krzyżowej bazie danych - nie jestem użytkownikiem mySQL, więc nie znam szczegółów. Ale w Oracle najpierw dajemy uprawnienia do "wybrania" odpowiedniej tabeli w schemacie 1 do schematu2. Następnie prefiksujemy tabelę za pomocą schemaName. Wybierz więc * ze schematu1.tablename. – user158017

4

Nic.

Mimo to możesz być zadowolony, że masz doświadczenie w uczeniu się i być dumnym z tego, jak zmienisz swoje nawyki, aby znacznie zmniejszyć szansę na ponowne wystąpienie. Będziesz "mistrzem", który teraz może uczyć młode szczenięta i cytować z rzeczywistych doświadczeń testowanych podczas bitwy.

+0

Cieszę się, że stało się to na tym etapie i być ostrożnym w przyszłości. Chociaż wpływ nie jest tak poważny, to nadal dotyka mnie. Niemniej jednak było to dobre doświadczenie edukacyjne. – Naveen

+0

Witam @Naveen. Czy udało Ci się rozwiązać problem? Zapomniałem, gdzie klauzula i moja głowa jest gorąca. Moja kopia zapasowa nie jest tak aktualna. –