DELIMITER $$
CREATE PROCEDURE TruncateAllTables()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE tableName CHAR(64);
DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = '数据库名';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO tableName;
IF done THEN
LEAVE read_loop;
END IF;
SET @s = CONCAT('TRUNCATE TABLE ', tableName);
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
END$$
DELIMITER ;
//执行sql
CALL TruncateAllTables();