Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Unterschied zwischen TRUNCATE und DELETE?

LÖSCHEN

  1. DELETE ist ein DML-Befehl.
  2. Die DELETE-Anweisung wird mit einer Zeilensperre ausgeführt, jede Zeile in der Tabelle ist zum Löschen gesperrt.
  3. Wir können Filter in der Where-Klausel spezifizieren
  4. Es löscht angegebene Daten, wenn eine Bedingung vorhanden ist.
  5. Löschen aktiviert einen Trigger, da die Vorgänge einzeln protokolliert werden.
  6. Langsamer als truncate, da Protokolle geführt werden.
  7. Rollback ist möglich.

TRUNCATE

  1. TRUNCATE ist ein DDL-Befehl.
  2. TRUNCATE TABLE sperrt immer die Tabelle und die Seite, aber nicht jede Zeile.
  3. Wo-Bedingung kann nicht verwendet werden.
  4. Es entfernt alle Daten.
  5. TRUNCATE TABLE kann keinen Trigger aktivieren, da die Operation einzelne Zeilenlöschungen nicht protokolliert.
  6. Schneller in Bezug auf die Leistung, da keine Protokolle geführt werden.
  7. Ein Rollback ist nicht möglich.