我写的第一个MySQL Store Proc

开发者在线 Builder.com.cn 更新时间:2007-07-27作者:左轻侯 来源:blog

本文关键词: 左轻侯 Mysql

作用是改变指定数据库中所有表的存储引擎
在MySQL 5.0下通过
在MySQL Query Brower下通过,在命令行通过,但是在phpmyadmin下面死活不行
好象phpmyadmin不支持存储过程


DELIMITER $$

DROP PROCEDURE IF EXISTS `perftest`.`ChangeDbType` $$
CREATE PROCEDURE `perftest`.`ChangeDbType` (DBNAME VARCHAR(64), TABLETYPE VARCHAR(64))
BEGIN
DECLARE TABLENAME VARCHAR(64);
DECLARE SQLSTR VARCHAR(200);
DECLARE DONE INT DEFAULT 0;
DECLARE CUR1 CURSOR FOR SELECT table_name FROM information_schema.`TABLES` T where table_schema = DBNAME;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET DONE = 1;

OPEN CUR1;
REPEAT
FETCH CUR1 INTO TABLENAME;
SET @SQLSTR = CONCAT('ALTER TABLE ', DBNAME, '.', TABLENAME, ' ENGINE = ', TABLETYPE, ';');
PREPARE STMT1 FROM @SQLSTR;
EXECUTE STMT1;
UNTIL DONE = 1 END REPEAT;

CLOSE CUR1;
END $$

DELIMITER ;


 

查看本文来源

用户评论

  • 用户名
  • 评论内容