Czy istnieje sposób, abyśmy mogli cofnąć zapytanie o aktualizację SQL?Aktualizacja SQL cofnąć
Odpowiedz
Nie można, chyba że został uruchomiony wewnątrz transaction.
W zależności od transakcji DBMS transakcje będą obsługiwane inaczej, dlatego należy przeczytać dokumentację. Na przykład z mysql oto jak to działa:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET [email protected] WHERE type=1;
COMMIT;
Z Postresql:
BEGIN;
UPDATE accounts SET balance = balance - 100.00
WHERE name = 'Alice';
-- etc etc
COMMIT;
Z TSQL:
DECLARE @TranName VARCHAR(20)
SELECT @TranName = 'MyTransaction'
BEGIN TRANSACTION @TranName
GO
USE pubs
GO
UPDATE roysched
SET royalty = royalty * 1.10
WHERE title_id LIKE 'Pc%'
GO
COMMIT TRANSACTION MyTransaction
GO
Istnieją również pewne działania, które nie mogą być wprowadzane do transakcji , ale w większości systemów zarządzania bazami danych, które można znaleźć w tych dniach, powinieneś być w stanie wycofać update
.
Na koniec zawsze można cofnąć aktualizację, jeśli prowadzisz dokładny rejestr wszystkiego, co dzieje się w bazie danych, ale to już inna historia.
Po uruchomieniu aktualizacji w ramach transakcji można wycofać transakcję.
SQL Server:
begin transaction
update [Table] set col1 = 'test' where Id = 3
rollback transaction
Inna technika może być dodanie wyzwalacz aktualizacji do stołu, i wszędzie rekord jest aktualizowany, zapisać poprzednie wartości off do „historii” tabeli. To może, ale nie musi być dobrym pomysłem, jeśli ta tabela jest intensywnie używana.
Cofanie w języku SQL nosi nazwę rollback
. Po wykonaniu operacji commit
nie można jej cofnąć bez przywracania kopii zapasowych.
Należy pamiętać, że cofnięcie wycofania spowoduje cofnięcie całej transakcji, co oznacza każdą aktualizację, wstawienie i usunięcie od rozpoczęcia transakcji, co zwykle ma miejsce od ostatniego zatwierdzenia lub wycofania. Oznacza to, że jeśli wykonasz dwie kolejne aktualizacje, nie możesz cofnąć tylko drugiej. Niektóre bazy danych zapewniają "punkty zapisu", które pozwalają na to.
Tylko jeśli jesteś w transakcji (jak marcgg) powiedział, czy masz najnowszą kopię zapasową ... odzyskanie w ten sposób robi stretch termin „cofnąć” rathermuch ..
Można użyć narzędzia firm trzecich jak Red Gate's Log Rescue. Istnieje 14-dniowy bezpłatny, funkcjonalny okres próbny ich narzędzi SQL Toolkit. (Zakładając SQL Server 2000!).
SQL Server nie obsługuje tego po wyjęciu z pudełka, ale w niektórych przypadkach możliwe jest odzyskanie danych przez odczytanie dziennika transakcji. Działa to, jeśli baza danych była w pełnym trybie odzyskiwania i potrzebne są narzędzia innych firm, takie jak ApexSQL Log lub Log Rescue. Istnieje również sposób odczytu t-log za pomocą polecenia DBCC LOG, ale prawdopodobnie okaże się to zbyt trudne.
Można również sprawdzić następujące tematy gdzie to jest omówione:
- 1. Aktualizacja SQL sql dołączyć
- 2. Aktualizacja SQL Query
- 3. VSCode 1.14.0 Aktualizacja z lipca ma poważne problemy: Jak cofnąć?
- 4. SQL aktualizacja Top1 wiersz kwerendy
- 5. Aktualizacja wielu kolumn w SQL
- 6. Aktualizacja php sql z formularza
- 7. LINQ do SQL - aktualizacja rekordów
- 8. C#, aktualizacja SQL wielu wierszy
- 9. Jak cofnąć aktualizację RequestFactory
- 10. Czy mogę cofnąć aktualizację Meteor?
- 11. Aktualizacja wyzwalacza SQL wielokrotnego rzędu z pojedynczej aktualizacji instrukcji SQL
- 12. Aktualizacja SQL Server przy użyciu wielu tabel
- 13. Aktualizacja SQL Server z grupą przez
- 14. Aktualizacja Oracle SQL co n-ty wiersz
- 15. Aktualizacja pola bitowego sql w bazie danych
- 16. Aktualizacja SQL, gdzie w zestawie danych
- 17. SQL: Aktualizacja tabeli z pliku tekstowego
- 18. Aktualizacja za pomocą LINQ do SQL
- 19. SQL Aktualizacja do sumy jego przystąpiły wartości
- 20. Aktualizacja SQL po połączeniu dwóch tabel
- 21. LINQ - czy można cofnąć?
- 22. Jak cofnąć usunięcie svn
- 23. Jak cofnąć wyczyść git
- 24. git cofnąć usunięte pliki
- 25. Jak cofnąć hg init?
- 26. Jak cofnąć "kopię svn"
- 27. jak cofnąć zapytanie mysql?
- 28. Jak cofnąć deklarację `declaration`?
- 29. Jak cofnąć "hg qnew"?
- 30. Jak cofnąć zatwierdzenie
Nie mów, co baza danych używasz.Jeśli korzystasz z Oracle, możesz wypróbować zapytanie flashback, aby odzyskać niepotrzebne dane. –