阅读量:0
清空指定数据库中所有表的记录,但保留表结构 选择要清空的数据库 USE your_database_name; 遍历数据库中的所有表,并清空它们的记录 DELIMITER $$ CREATE PROCEDURE ClearAllTables() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE tableName VARCHAR(255); DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE(); 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 ; 调用存储过程清空所有表 CALL ClearAllTables(); 清空存储过程 DROP PROCEDURE IF EXISTS ClearAllTables;
SQL脚本包含了以下步骤:
1、选择要操作的数据库。
2、创建一个存储过程ClearAllTables
,该过程遍历数据库中的所有表。
3、对于每个表,使用TRUNCATE TABLE
语句来清空表的记录,但不删除表结构。
4、调用存储过程来执行清空操作。
5、删除存储过程,以清理环境。
请将your_database_name
替换为实际的数据库名称,在执行此脚本之前,请确保你有足够的权限来执行这些操作,并且已经对数据库进行了备份,以防意外情况发生。