2011-11-01 127 views
1

我正在使用MySQL。mySQL:截断所有表的命令

什么是mysql命令截断我的数据库的所有表

我的意思是mysql命令其空所有表在我的数据库不降所有表。

+0

可能重复[在一个命令中截断MySQL数据库中的所有表?](http://stackoverflow.com/questions/1912813/truncate-all-tables-in-a-mysql-database-in-one-命令) –

回答

2

试试这个代码中发现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

我最喜欢的方式是使用Navicat的。

使用控制A检查所有表。然后右键单击并选择“截断表”。