Trunchiați (SQL)
Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită la 25 iunie 2014; verificările necesită
14 modificări .
TRUNCATE - în limbajul SQL - o operație de ștergere instantanee a tuturor rândurilor dintr-un tabel. Asemănător logic cu operația DELETE fără clauza WHERE , dar diferă în situațiile practice [1] [2] [3] [4] [5] .
Sintaxă
Sintaxa generală a comenzii:
TRUNCATE TABLE < Nume tabel >
Consecința executării unei astfel de comenzi este ștergerea completă a tuturor rândurilor din tabelul <TableName> .
Diferențele față de instrucțiunea DELETE
Principalele diferențe dintre instrucțiunile TRUNCATE și DELETE care pot fi prezente în diferite implementări DBMS sunt:
- Operația TRUNCATE nu scrie în jurnalul de evenimente ștergerea rândurilor individuale. Ca urmare, nu poate activa declanșatoarele .
- Operația TRUNCATE este urmată de o operațiune implicită COMMIT pentru unele SGBD (cum ar fi Oracle ) . Prin urmare, înregistrările șterse din tabel nu pot fi restaurate cu operația ROLLBACK . Dar există și SGBD-uri în care operațiunea TRUNCATE poate participa la tranzacții, cum ar fi PostgreSQL și Microsoft SQL Server .
- Operația DELETE blochează fiecare rând, în timp ce operația TRUNCATE blochează întregul tabel.
- Operația TRUNCATE nu returnează nicio valoare semnificativă (de obicei returnează 0), spre deosebire de DELETE , care returnează numărul de rânduri șterse.
- Operația TRUNCATE în unele SGBD (de ex. MySQL sau Microsoft SQL Server ) resetează contoarele (pentru câmpurile cu AUTOINCREMENT / IDENTITATE). În PostgreSQL , resetarea contoarelor necesită modificatorul RESTART IDENTITY.
- Operația TRUNCATE în unele DBMS (cum ar fi MySQL , PostgreSQL sau Microsoft SQL Server ) nu este permisă pe tabele care conțin chei străine ale altor tabele. PostgreSQL are, totuși, un modificator CASCADE care permite TRUNCATE în această situație - datele din tabelele dependente sunt șterse în aceeași tranzacție.
- SQLite nu are o operație ca atare, dar există o optimizare a operației DELETE care „își accelerează semnificativ funcționarea dacă nu există argument WHERE”.
Implementarea instrucțiunii TRUNCATE poate depinde de alegerea unui anumit SGBD. Prin urmare, în fiecare caz, este necesar să se studieze documentația sistemului selectat.
Note
- ↑ Cărți online SQL Server. Instrucțiunea TRUNCATE TABLE. . Microsoft. Consultat la 12 octombrie 2014. Arhivat din original la 25 aprilie 2012. (nedefinit)
- ↑ Documentația MySQL. TRUNCATE TABLE Sintaxă. . Preluat la 14 mai 2010 Arhivat din original la 25 aprilie 2012. (nedefinit)
- ↑ Oracle® Database SQL Reference. 10g Versiunea 2 (10.2). . Oracle Corp. Preluat la 14 mai 2010 Arhivat din original la 25 aprilie 2012. (nedefinit)
- ↑ Postgres Pro Standard: Documentație: 9.5: TRUNCATE . postgrespro.ru. Preluat la 7 iunie 2020. Arhivat din original pe 7 iunie 2020. (Rusă)
- ↑ DELETE . www.sqlite.org. Preluat la 7 iunie 2020. Arhivat din original la 17 iunie 2020. (nedefinit)
SQL |
---|
Versiuni |
- SQL-86
- SQL-89
- SQL-92
- SQL:1999
- SQL:2003
- SQL:2006
- SQL:2008
- SQL:2011
- SQL:2016
|
---|
Cuvinte cheie |
|
---|
Articole similare |
|
---|
Părți ale ISO/IEC SQL |
- Cadru
- fundație
- Interfață la nivel de apel
- Module stocate persistente
- Managementul Datelor Externe
- Legături de limbaj obiect
- Scheme de informații și definiții
- Rutine și tipuri SQL pentru limbajul de programare Java
- Specificații legate de XML
|
---|