SMAZAT
- DELETE je příkaz DML.
- Příkaz DELETE se provádí pomocí zámku řádku, každý řádek v tabulce je uzamčen pro smazání.
- V klauzuli where můžeme zadat filtry
- Pokud existuje podmínka, smaže zadaná data.
- Smazat aktivuje spouštěč, protože operace jsou protokolovány jednotlivě.
- Pomalejší než zkrácení, protože uchovává protokoly.
- Vrácení zpět je možné.
ZKRÁTIT
- TRUNCATE je příkaz DDL.
- TRUNCATE TABLE vždy uzamkne tabulku a stránku, ale ne každý řádek.
- Nelze použít podmínku Where.
- Odstraní všechna data.
- TRUNCATE TABLE nemůže aktivovat spouštěč, protože operace nezaznamenává smazání jednotlivých řádků.
- Výkonově rychlejší, protože neuchovává žádné záznamy.
- Vrácení zpět je možné.
- DELETE a TRUNCATE lze vrátit zpět při použití s TRANSACTION (TRUNCATE lze vrátit zpět v SQL Server, ale ne v MySQL).
- pokud existuje PK s automatickým přírůstkem, zkrácení vynuluje počítadlo
http://beginner-sql-tutorial.com/sql-delete-statement .htm