sql >> Database teknologi >  >> RDS >> Oracle

Hvordan gendanner man dataene i en Oracle-tabel?

For det første, forpligtede du dig til ændringen? Hvis ikke, kan du blot udstede en rollback for at fortryde dine ændringer.

Hvis du antager, at du har foretaget dine ændringer, ændrer andre brugere så tabellen på samme tid? Har du brug for at bevare de ændringer, som andre har foretaget, og kun fortryde de ændringer, du har foretaget i din transaktion? Eller kan du gendanne hele tabellen til et tidspunkt, før dine ændringer blev foretaget?

Hvis du kan gendanne hele tabellen til et tidspunkt

FLASHBACK TABLE <<table name>>
  TO TIMESTAMP( systimestamp - interval '10' minute )

vil returnere en tabel til den tilstand, den var i for 10 minutter siden, forudsat at UNDO nødvendigt for at gøre det forbliver tilgængelig (så du kun har en begrænset tid efter at have lavet en fejl til at kunne flashback den fejl). For at udstede en FLASHBACK TABLE , det skal du også sørge for

  • Tabellen har aktiveret rækkebevægelse ALTER TABLE <<table name>> ENABLE ROW MOVEMENT
  • Du skal have FLASHBACK privilegier på bordet eller FLASHBACK ANY TABLE systemrettigheder.


  1. Hvordan forbinder man en C# Windows mobile 6.5-app til en Postgres-database?

  2. Kald til en medlemsfunktion exec() på en ikke-objekt fejl i PHP

  3. Sådan opdaterer du eksisterende data med SQLite

  4. SQL til automatisk at generere manglende datoer og pris fra umiddelbart forudgående dato for manglende dato i tabel