Soms wil je in één keer alle gegevens in een database tabel weggooien. Hiervoor kun je het TRUNCATE
statement gebruiken.
Het effect lijkt heel erg op het DELETE
statement, alleen er zit een wezenlijk verschil tussen TRUNCATE
en DELETE
. Bij een TRUNCATE wordt de tabel gedropt en opnieuw aangemaakt. Daarbij worden ook alle indexen opnieuw geset.
Als je een auto incrementeel ID-veld hebt dat automatisch oploopt, dan wordt deze door het TRUNCATE
statement weer op 1 gezet. Bij een DELETE
zal de nummering daarentegen gewoon blijven doorlopen.
Wil je dus de tabel in zijn geheel leeggooien en resetten, dan is het dus verstandig om TRUNCATE TABLE
te gebruiken.
De syntax van het statement ziet er als volgt uit:
TRUNCATE TABLE tabelnaam
Heb je een tabel genaamd klanten, dan wordt de query:
TRUNCATE TABLE klanten
Alles of niets
Een ander verschil met de DELETE
is dat er bij het gebruik van TRUNCATE
geen specifieke selectie opgegeven kan worden door middel van het WHERE
statement. Dus je gooit alle gegevens in de tabel weg en dit proces kan ook niet ongedaan gemaakt worden.
Ga je aan de slag met het leeggooien van je tabellen, dan is het maken van een backup aan te bevelen.