Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Truncate multiple tables in one MySQL statement

Tags:

sql

truncate

Is there a possibility to truncate with one SQL statement, multiple tables?

Like this:

 truncate table #OBJ_AvailabilityTraining, #OBJ_AvailabilityHoliday, #Dates_temp; 

Regards

like image 625
user2206834 Avatar asked Apr 10 '13 13:04

user2206834


People also ask

What is the truncate command in MySQL?

TRUNCATE TABLE empties a table completely. It requires the DROP privilege. Logically, TRUNCATE TABLE is similar to a DELETE statement that deletes all rows, or a sequence of DROP TABLE and CREATE TABLE statements. To achieve high performance, TRUNCATE TABLE bypasses the DML method of deleting data.

Is truncate more efficient than delete?

TRUNCATE is faster than DELETE , as it doesn't scan every record before removing it. TRUNCATE TABLE locks the whole table to remove data from a table; thus, this command also uses less transaction space than DELETE .


1 Answers

You can use the sp_MSforeachtable stored procedure like so:

USE MyDatabase EXEC sp_MSforeachtable 'TRUNCATE TABLE ?' 

Or you can create SQL Statement

SELECT concat('TRUNCATE TABLE ', TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'TableName%' 

and run this above SQL statement

like image 76
Pankaj Agarwal Avatar answered Sep 19 '22 13:09

Pankaj Agarwal