Để xóa hết dữ liệu trong 1 bảng CSDL, thông thường chúng ta sử dụng câu lệnh SQL Query là DELETE * FROM table_name, tuy nhiên để với 1 bảng CSDL lớn, để xóa nhanh hơn thì có thể sử dụng câu lệnh SQL: TRUNCATE TABLE
Cú pháp lệnh TRUNCATE TABLE
TRUNCATE [ TABLE ] [ ONLY ] <table_name> [ * ] [, ... ] [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]
Với
- <table_name>: là tên của bảng cần xóa hết dữ liệu
- RESTART IDENTITY: Restart lại sequence của colum
- CONTINUE IDENTITY: Không thay đổi giá trị của sequence (Mặc định)
- CASCADE: Tự động truncate tất cả các bảng có liên kết thông qua foreign key
- RESTRICT: Không truncate nếu bảng cần truncate có các bảng khác liên kết thông qua foreign key
Một số ví dụ về lệnh TRUNCATE TABLE
Xóa hết dữ liệu của bảng groups
TRUNCATE TABLE groups;
Sau khi truncate bảng groups, 3 bản ghi trong bảng groups đã được xóa.
Xóa hết dữ liệu và restart lại sequence của colum group_id
TRUNCATE TABLE groups RESTART IDENTITY;
Xóa hết dữ liệu của nhiều bảng 1 lúc
TRUNCATE TABLE groups, users;
Xóa bảng groups và tất cả các bản liên kết với nó thông qua foreign key (khóa ngoại)
TRUNCATE TABLE groups CASCADE;