2012-06-06 16 views
11

Stavo cercando di eseguire un aggiornamento sul server MySQL e ho dimenticato per sbaglio di aggiungere una clausola WHERE addizionale che doveva modificare una riga.Annulla un comando UPDATE mysql

Ora ho più di 3500 righe modificate a causa del mio errore.

Posso avere un backup ma ho fatto un sacco di lavoro dall'ultimo backup e non voglio sprecarlo tutto a causa di 1 query non valida.

Per favore dimmi che c'è qualcosa che posso fare per risolvere questo problema.

+4

Scommetto che ti volevano le tue transazioni –

+0

sfortunatamente, se non hai fatto un backup non credo ci sia niente che tu possa fare. – srchulo

+0

Il registro binario è abilitato? –

risposta

5

Se hai eseguito la transazione, è ora di rispolverare quel backup, mi dispiace. Ma è a questo che servono i backup. Ho fatto qualcosa del genere una volta sola ... una volta.

8

Solo un'idea: è possibile ripristinare il backup su un nuovo database e quindi eseguire una query su database incrociato per aggiornare la colonna in base ai dati utilizzati?

+1

Non l'ho mai fatto prima? Qualche suggerimento su come farlo? – Naveen

+1

Per il ripristino: il mio DBA lo farebbe (sono uno sviluppatore, non un DBA). Per query su database incrociati - Non sono una persona mySQL quindi non conosco i dettagli. Ma in Oracle, prima concediamo il permesso di "selezionare" nella tabella appropriata nello schema1 allo schema2. Quindi aggiungiamo il prefisso alla tabella con schemaName. Quindi selezionare * da schema1.tablename. – user158017

4

Niente.

Nonostante ciò, puoi essere contento di avere questa esperienza di apprendimento sotto la cintura ed essere orgoglioso di come ora cambierai le tue abitudini per ridurre notevolmente le possibilità che accada di nuovo. Sarai il 'padrone' ora che può insegnare ai giovani cuccioli e citare da una vera e propria esperienza collaudata.

+0

Sono contento che sia successo a questo stadio e sarei stato molto più prudente in futuro. Sebbene l'impatto non sia così grave, mi colpisce ancora. Tuttavia, è stata una buona esperienza di apprendimento. – Naveen

+0

Ciao @Naveen. Sei riuscito a risolvere il problema. Hai dimenticato la clausola where e la mia testa è calda. Il mio backup non è così recente. –