存储过程

解决方案 »

  1.   

    存储过程示例:DROP PROCEDURE IF EXISTS shen.sp_alter_db_charset;
    CREATE PROCEDURE shen.`sp_alter_db_charset`(in i_dbname varchar(50))
    begin
    declare v_i int default 0;
    declare v_tbname varchar(100);
    declare cur_test cursor for select table_name from information_schema.tables where table_schema=i_dbname;
    declare continue handler for not found set v_i=1;
    open cur_test;
    fetch cur_test into v_tbname;
    while v_i=0 do
    set @str=concat('alter table ',v_tbname,' charset gbk');
    prepare stmt1 from @str;
    execute stmt1;
    deallocate prepare stmt1;
    fetch cur_test into v_tbname;
    end while;
    close cur_test;
    end;
      

  2.   

    http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html20. 存储程序和函数
    20.1. 存储程序和授权表
    20.2. 存储程序的语法
    20.2.1. CREATE PROCEDURE和CREATE FUNCTION
    20.2.2. ALTER PROCEDURE和ALTER FUNCTION
    20.2.3. DROP PROCEDURE和DROP FUNCTION
    20.2.4. SHOW CREATE PROCEDURE和SHOW CREATE FUNCTION
    20.2.5. SHOW PROCEDURE STATUS和SHOW FUNCTION STATUS
    20.2.6. CALL语句
    20.2.7. BEGIN ... END复合语句
    20.2.8. DECLARE语句
    20.2.9. 存储程序中的变量
    20.2.10. 条件和处理程序
    20.2.11. 光标
    20.2.12. 流程控制构造
    20.3. 存储程序、函数、触发程序和复制:常见问题
    20.4. 存储子程序和触发程序的二进制日志功能