热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

[遍历表]我的第一个mysql存储过程

来源: 作者: 时间:2007-11-07 Tag: 点击:

DELIMITER $$
/*更改discuz数据库中每个表的字符集为utf8,校对规则为utf8_bin 1:44 2007-11-4*/
DROP PROCEDURE IF EXISTS `discuz`.`qifei` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `qifei`()
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE a VARCHAR(20);
    DECLARE rs CURSOR FOR
        SELECT `TABLE_NAME` FROM information_schema.`TABLES` where `TABLE_SCHEMA`='discuz';
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    open rs;
    REPEAT
        FETCH rs INTO a;
        SET @s = CONCAT(
'
        ALTER TABLE '
,a,
'
        DEFAULT CHARACTER SET utf8
        DEFAULT COLLATE utf8_bin'
);
    PREPARE stmt FROM @s;
    EXECUTE stmt;
    UNTIL done END REPEAT;
    CLOSE rs;
END $$
DELIMITER ;


涉及知识点:变量定义、预处理语句、系统表、游标、循环语句、字符串函数
最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册