Jakie są różnice pomiędzy TRUNCATE , DELETE oraz DROP?


TRUNCATE oraz DELETE usuwają wiersze z tabeli natomiast polecenie DROP kasuje dany obiekt z bazy (np. tabelę, procedurę).

TRUNCATE TABLE Users -- usuwamy wszystkie wpisy z tabeli Users

DROP TABLE Users -- usuwamy tabelę Users

Ważne jest także to, że polecenie TRUNCATE działa o wiele szybciej od DELETE. Wynika to z mechanizmu działania tych poleceń.

  • DELETE usuwa wiersze jeden po drugim i tworzy wpis w dzienniku transakcji dla każdego usuniętego wpisu
  • TRUNCATE usuwa strony przechowujące dane i tworzy wpis jedynie dla tych stron
  • DELETE wywołuje triggery, TRUNCATE nie
  • TRUNCATE resetuje opcję AUTOINCREMENT na danej kolumnie do wartości początkowych
  • w poleceniu DELETE można użyć klauzuli WHERE by usunąć jedynie pożądane dane
  • TRUNCATE usuwa wszystkie dane, brak możliwości filtrowania
  • dane usunięte poleceniem DELETE można przywrócić, zmiany spowodowane poleceniem TRUNCATE są nieodwracalne
alsenq 02-02-2022 01:45
Czy to wszystkie różnice pomiędzy TRUNCATE a DELETE? Co z różnicami pomiędzy ORACLE a SQL Server?


© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci