您的位置:首页 > 数据库

清空数据库中的所有的表的存储过程

2012-12-28 17:47 344 查看
CREATE DEFINER=`root`@`%` PROCEDURE `Clear_DB`(

        DB_NAME varchar(50)  # 数据库名称

  )

BEGIN

  DECLARE done INT DEFAULT 0;  #游标的标志位

  DECLARE name varchar(250);

  DECLARE cmd varchar(250);

  DECLARE tb_name CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME;

  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

 

  OPEN tb_name;

  REPEAT

    FETCH tb_name INTO name;

    IF NOT done THEN

       #set cmd=concat('Delete from ',DB_NAME,'.','`',`name`,'`');

       set cmd=concat('TRUNCATE table ',DB_NAME,'.','`',`name`,'`');  # 拼删除命令

       SET @E=cmd;

       PREPARE stmt FROM @E;

          EXECUTE stmt; 

          DEALLOCATE PREPARE stmt; 

    END IF;

  UNTIL done END REPEAT;

  CLOSE tb_name;

END;

call Clear_DB('数据库名称');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: