Truncate (SQL)
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 25. juni 2014; checks kræver
14 redigeringer .
TRUNCATE - i SQL -sprog - en operation til øjeblikkeligt at slette alle rækker i en tabel. Logisk ligner DELETE- operationen uden WHERE-sætningen , men adskiller sig i praktiske situationer [1] [2] [3] [4] [5] .
Syntaks
Generel kommandosyntaks:
TRUNCATE TABLE < Tabelnavn > _
Konsekvensen af at udføre en sådan kommando er fuldstændig sletning af alle rækker i tabellen <Tabelnavn> .
Forskelle fra DELETE-sætningen
De vigtigste forskelle mellem TRUNCATE- og DELETE-sætningerne, der kan være til stede i forskellige DBMS- implementeringer , er:
- TRUNCATE-operationen skriver ikke sletningen af individuelle rækker til hændelsesloggen. Som et resultat kan den ikke aktivere triggere .
- TRUNCATE-operationen efterfølges af en implicit COMMIT- operation for nogle DBMS'er (såsom Oracle ) . Derfor kan poster slettet i tabellen ikke gendannes med ROLLBACK- handlingen . Men der er også DBMS'er, hvor TRUNCATE-operationen kan deltage i transaktioner, såsom PostgreSQL og Microsoft SQL Server .
- DELETE-operationen låser hver række, mens TRUNCATE-operationen låser hele bordet.
- TRUNCATE-operationen returnerer ikke nogen meningsfuld værdi (returnerer normalt 0), i modsætning til DELETE , som returnerer antallet af slettede rækker.
- TRUNCATE-operationen i nogle DBMS (f.eks. MySQL eller Microsoft SQL Server ) nulstiller tællere (for felter med AUTOINCREMENT / IDENTITET). I PostgreSQL kræver nulstilling af tællere RESTART IDENTITY-modifikatoren.
- TRUNCATE-handlingen i nogle DBMS (såsom MySQL , PostgreSQL eller Microsoft SQL Server ) er ikke tilladt på tabeller, der indeholder fremmednøgler til andre tabeller. PostgreSQL har dog en CASCADE-modifikator, der tillader TRUNCATE i denne situation - data fra afhængige tabeller slettes i samme transaktion.
- SQLite har ikke en operation som sådan, men der er en optimering af DELETE operationen, der "fremskynder operationen markant, hvis der ikke er noget WHERE argument".
Implementeringen af TRUNCATE-sætningen kan afhænge af valget af et bestemt DBMS. Derfor er det i hvert tilfælde nødvendigt at studere dokumentationen for det valgte system.
Noter
- ↑ SQL Server Books Online. TRUNCATE TABLE-udsagn. . Microsoft. Hentet 12. oktober 2014. Arkiveret fra originalen 25. april 2012. (ubestemt)
- ↑ MySQL-dokumentation. TRUNCATE TABEL Syntaks. . Hentet 14. maj 2010 Arkiveret fra originalen 25. april 2012. (ubestemt)
- ↑ Oracle® Database SQL Reference. 10g Release 2 (10.2). . Oracle Corp. Hentet 14. maj 2010 Arkiveret fra originalen 25. april 2012. (ubestemt)
- ↑ Postgres Pro Standard: Dokumentation: 9.5: TRUNCATE . postgrespro.ru. Hentet 7. juni 2020. Arkiveret fra originalen 7. juni 2020. (Russisk)
- ↑ SLET . www.sqlite.org. Hentet 7. juni 2020. Arkiveret fra originalen 17. juni 2020. (ubestemt)
SQL |
---|
Versioner |
- SQL-86
- SQL-89
- SQL-92
- SQL:1999
- SQL:2003
- SQL:2006
- SQL:2008
- SQL:2011
- SQL:2016
|
---|
Nøgleord |
|
---|
Relaterede artikler |
|
---|
Dele af ISO/IEC SQL |
- Ramme
- Fundament
- Call Level Interface
- Vedvarende lagrede moduler
- Håndtering af eksterne data
- Objektsprogbindinger
- Informations- og definitionsskemaer
- SQL-rutiner og -typer til Java-programmeringssproget
- XML-relaterede specifikationer
|
---|