Zkrátit (SQL)
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 25. června 2014; kontroly vyžadují
14 úprav .
TRUNCATE - v jazyce SQL - operace pro okamžité odstranění všech řádků v tabulce. Logicky podobná operaci DELETE bez klauzule WHERE , ale liší se v praktických situacích [1] [2] [3] [4] [5] .
Syntaxe
Obecná syntaxe příkazu:
TRUNCATE TABLE < Název tabulky >
Důsledkem provedení takového příkazu je úplné smazání všech řádků tabulky <TableName> .
Rozdíly od příkazu DELETE
Hlavní rozdíly mezi příkazy TRUNCATE a DELETE, které mohou být přítomny v různých implementacích DBMS , jsou:
- Operace TRUNCATE nezapisuje do protokolu událostí mazání jednotlivých řádků. V důsledku toho nemůže aktivovat spouštěče .
- Po operaci TRUNCATE následuje implicitní operace COMMIT pro některé DBMS (jako je Oracle ) . Proto záznamy smazané v tabulce nelze obnovit pomocí operace ROLLBACK . Existují však také DBMS, kde se operace TRUNCATE může účastnit transakcí, jako je PostgreSQL a Microsoft SQL Server .
- Operace DELETE uzamkne každý řádek, zatímco operace TRUNCATE uzamkne celou tabulku.
- Operace TRUNCATE nevrací žádnou smysluplnou hodnotu (obvykle vrací 0), na rozdíl od DELETE , která vrací počet smazaných řádků.
- Operace TRUNCATE v některých DBMS (např . MySQL nebo Microsoft SQL Server ) vynuluje čítače (pro pole s AUTOINCREMENT / IDENTITY). V PostgreSQL vyžaduje resetování počítadel modifikátor RESTART IDENTITY.
- Operace TRUNCATE v některých DBMS (jako je MySQL , PostgreSQL nebo Microsoft SQL Server ) není povolena u tabulek obsahujících cizí klíče jiných tabulek. PostgreSQL však má modifikátor CASCADE, který v této situaci umožňuje TRUNCATE - data ze závislých tabulek jsou vymazána ve stejné transakci.
- SQLite nemá operaci jako takovou, ale existuje optimalizace operace DELETE, která "výrazně zrychlí její činnost, pokud není argument WHERE".
Implementace příkazu TRUNCATE může záviset na volbě konkrétního DBMS. Proto je v každém případě nutné prostudovat dokumentaci zvoleného systému.
Poznámky
- ↑ SQL Server Books Online. Příkaz TRUNCATE TABLE. . Microsoft. Získáno 12. října 2014. Archivováno z originálu 25. dubna 2012. (neurčitý)
- ↑ Dokumentace MySQL. Syntaxe TRUNCATE TABLE. . Získáno 14. května 2010 Archivováno z originálu dne 25. dubna 2012. (neurčitý)
- ↑ Oracle® Database SQL Reference. 10g vydání 2 (10.2). . Společnost Oracle Corp. Získáno 14. května 2010 Archivováno z originálu dne 25. dubna 2012. (neurčitý)
- ↑ Postgres Pro Standard: Dokumentace: 9.5: TRUNCATE . postgrespro.ru. Získáno 7. června 2020. Archivováno z originálu dne 7. června 2020. (Ruština)
- ↑ ODSTRANIT . www.sqlite.org. Získáno 7. června 2020. Archivováno z originálu dne 17. června 2020. (neurčitý)
SQL |
---|
Verze |
- SQL-86
- SQL-89
- SQL-92
- SQL:1999
- SQL:2003
- SQL:2006
- SQL:2008
- SQL:2011
- SQL:2016
|
---|
Klíčová slova |
|
---|
Související články |
|
---|
Části ISO/IEC SQL |
- Rámec
- Nadace
- Rozhraní úrovně volání
- Trvale uložené moduly
- Správa externích dat
- Vazby objektového jazyka
- Informační a definiční schémata
- Rutiny a typy SQL pro programovací jazyk Java
- Specifikace související s XML
|
---|