Home » Tabellen leeggooien met TRUNCATE

Tabellen leeggooien met TRUNCATE

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.