TRUNCATE
TRUNCATE
je v oblasti databází příkaz SQL pro smazání všech záznamů z tabulky.
Vlastnosti
- Vyprázdnění dat pomocí
TRUNCATE
je mnohem rychlejší než mazání pomocíDELETE
. - Na rozdíl od příkazu
DROP TABLE
poTRUNCATE
zůstane v databázi struktura dané tabulky. TRUNCATE
vyprázdní všechny záznamy dané tabulky (tabulek), podobně jako zrušení tabulky a její následné znovuvytvoření. (Z toho důvodu příkaz vyžaduje práva pro rušení a vytváření tabulek.)- Pokud tabulka obsahuje primární klíč s vlastností
AUTO_INCREMENT
, je jeho hodnota resetována na jedničku. To je též rozdíl od příkazuDELETE * FROM TABLE
. TRUNCATE
aktuálně není součástí žádného standardu SQL, ale mnoho (možná většina) databázových systémů jej podporuje.- V případě MySQL je počet ovlivněných záznamů po provedení příkazu
TRUNCATE
roven nule, bez ohledu na to, kolik záznamů bylo ve skutečnosti smazáno (tj. neindikuje to, že by příkaz selhal).
Syntaxe
Syntaxe TRUNCATE
je následující:
TRUNCATE [TABLE] [jmeno_databaze.]jmeno_tabulky1 [, jmeno_tabulky2];
Reference
V tomto článku byl použit překlad textu z článku Truncate (SQL) na anglické Wikipedii.