Trunkate (SQL)
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 25 juni 2014; kontroller kräver
14 redigeringar .
TRUNCATE - i SQL -språk - en operation för att omedelbart radera alla rader i en tabell. Logiskt liknar DELETE- operationen utan WHERE-satsen , men skiljer sig i praktiska situationer [1] [2] [3] [4] [5] .
Syntax
Allmän kommandosyntax:
TRUNCATE TABELL < Tabellnamn > _
Konsekvensen av att utföra ett sådant kommando är fullständig radering av alla rader i tabellen <TableName> .
Skillnader från DELETE-satsen
De huvudsakliga skillnaderna mellan TRUNCATE- och DELETE-satserna som kan finnas i olika DBMS- implementationer är:
- TRUNCATE-operationen skriver inte bort raderingen av enskilda rader till händelseloggen. Som ett resultat kan den inte aktivera utlösare .
- TRUNCATE-operationen följs av en implicit COMMIT- operation för vissa DBMS (som Oracle ) . Därför kan poster som raderats i tabellen inte återställas med ROLLBACK- operationen . Men det finns också DBMS där TRUNCATE-operationen kan delta i transaktioner, som PostgreSQL och Microsoft SQL Server .
- DELETE-operationen låser varje rad, medan TRUNCATE-operationen låser hela tabellen.
- TRUNCATE-operationen returnerar inget meningsfullt värde (returerar vanligtvis 0), till skillnad från DELETE , som returnerar antalet raderade rader.
- TRUNCATE-operationen i vissa DBMS (t.ex. MySQL eller Microsoft SQL Server ) återställer räknare (för fält med AUTOINCREMENT / IDENTITET). I PostgreSQL kräver återställning av räknare modifieraren RESTART IDENTITY.
- TRUNCATE-operationen i vissa DBMS (som MySQL , PostgreSQL eller Microsoft SQL Server ) är inte tillåten på tabeller som innehåller främmande nycklar för andra tabeller. PostgreSQL har dock en CASCADE-modifierare som tillåter TRUNCATE i denna situation - data från beroende tabeller raderas i samma transaktion.
- SQLite har inte en operation som sådan, men det finns en optimering av DELETE-operationen som "avsevärt snabbar upp dess operation om det inte finns något WHERE-argument".
Implementeringen av TRUNCATE-satsen kan bero på valet av en viss DBMS. Därför är det i varje fall nödvändigt att studera dokumentationen för det valda systemet.
Anteckningar
- ↑ SQL Server Books Online. TRUNCATE TABLE uttalande. . Microsoft. Hämtad 12 oktober 2014. Arkiverad från originalet 25 april 2012. (obestämd)
- ↑ MySQL-dokumentation. TRUNCATE TABELL Syntax. . Hämtad 14 maj 2010 Arkiverad från originalet 25 april 2012. (obestämd)
- ↑ Oracle® Databas SQL Reference. 10g Release 2 (10.2). . Oracle Corp. Hämtad 14 maj 2010 Arkiverad från originalet 25 april 2012. (obestämd)
- ↑ Postgres Pro Standard: Dokumentation: 9.5: TRUNCATE . postgrespro.ru. Hämtad 7 juni 2020. Arkiverad från originalet 7 juni 2020. (ryska)
- ↑ DELETE . www.sqlite.org. Hämtad 7 juni 2020. Arkiverad från originalet 17 juni 2020. (obestämd)
SQL |
---|
versioner |
- SQL-86
- SQL-89
- SQL-92
- SQL:1999
- SQL:2003
- SQL:2006
- SQL:2008
- SQL:2011
- SQL:2016
|
---|
Nyckelord |
|
---|
Relaterade artiklar |
|
---|
Delar av ISO/IEC SQL |
- Ramverk
- fundament
- Samtalsnivågränssnitt
- Beständiga lagrade moduler
- Hantering av extern data
- Objektspråksbindningar
- Informations- och definitionsscheman
- SQL-rutiner och -typer för programmeringsspråket Java
- XML-relaterade specifikationer
|
---|