2011-11-01 3 views
1

J'utilise MySQL.mySQL: commande pour tronquer toutes les tables

Quelle est la commande mysql à troncature toutes les tables de ma base de données?

Je veux dire quelle est la commande MySQL qui vide toutes les tables dans mon DB laissez pas tomber toutes les tables.

+0

duplication possible de [Tronquer toutes les tables dans une base de données MySQL en une commande?] (Http://stackoverflow.com/questions/1912813/truncate-all-tables-in-a-mysql-database-in-one- commander) –

Répondre

2

Essayez ce code trouvé here

DELIMITER $$ 
CREATE PROCEDURE TruncateTables() 
BEGIN 
DECLARE done BOOL DEFAULT FALSE; 
DECLARE truncate_command VARCHAR(512); 
DECLARE truncate_cur 
CURSOR FOR /*This is the query which selects the tables we want to truncate*/ 
    SELECT CONCAT('TRUNCATE TABLE ',table_name) 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME LIKE 'prefix_%'; 
DECLARE 
    CONTINUE HANDLER FOR 
    SQLSTATE '02000' 
    SET done = TRUE; 

OPEN truncate_cur; 

truncate_loop: LOOP 
FETCH truncate_cur INTO truncate_command; 
SET @truncate_command = truncate_command; 

IF done THEN 
    CLOSE truncate_cur; 
    LEAVE truncate_loop; 
END IF; 

/*Main part - preparing and executing the statement*/ 
PREPARE truncate_command_stmt FROM @truncate_command; 
EXECUTE truncate_command_stmt; 

END LOOP; 
END$$ 

DELIMITER ; 
1

Ma façon préférée est d'utiliser Navicat.

Utilisez ContrôleA pour vérifier tous les tableaux. Puis faites un clic droit et choisissez "tronquer la table".

Questions connexes