文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MYSQL--清理测试数据的存储过程

MYSQL--清理测试数据的存储过程

时间:2010-07-18  来源:909413335

在做开发的过程中,会往数据库里写入很多测试的垃圾数据,到数据库需要正式发布的时候,这些测试数据必须清理掉。前面有同事用一条条delete 命令,组合成一个SQL文件去执行,很冗长,也很繁琐。于是思考能否做成一个通用的存储过程,只需要传入需要清理的数据库名称,然后自动清除所有的测试数据呢?晚上找时间写了如下的存储过程,在MYSQL5.1.42版本测试通过。

CREATE PROCEDURE Clear_DB(
        DB_NAME varchar(50) # 数据库名称
  )
BEGIN
  DECLARE done INT DEFAULT 0; #游标的标志位
  DECLARE a varchar(20);
  DECLARE b varchar(20);
  DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME ;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
 
  OPEN cur1;
  REPEAT
    FETCH cur1 INTO a;
    IF NOT done THEN
       set b=concat('Delete from ',DB_NAME,'.',a); # 拼删除命令
       # set b=concat('TRUNCATE from ',DB_NAME,'.',a); # 拼删除命令
       SET @E=b;
       PREPARE stmt1 FROM @E;
          EXECUTE stmt1; # 执行命令
          DEALLOCATE PREPARE stmt1; #释放对象
    END IF;
  UNTIL done END REPEAT;
  CLOSE cur1;
END;


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载