mysql简单存储过程范例之遍历数据库生成视图
2016-05-30 12:05
941 查看
范例:
BEGIN
-- 定义参数
declare done int(10);
declare p_feeCode varchar(50);
declare abc varchar(50);
declare sqlstr varchar(500);
-- 定义游标
declare feeCodeCursor cursor for select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES Where table_schema='common_db';
-- 定义变量
declare continue handler for not found set done=1;
set done=0;
-- 代开游标
open feeCodeCursor;
-- 执行循环
the_loop_new : LOOP
--
fetch feeCodeCursor into p_feeCode;
Set abc = concat("common_db.",p_feeCode);
SET sqlstr=concat("CREATE OR REPLACE view ",p_feeCode," as select * from ",abc,";");
set @v_sql=sqlstr;
prepare stmt from @v_sql;
EXECUTE stmt;
deallocate prepare stmt;
IF done = 1 THEN
close feeCodeCursor;
LEAVE the_loop_new;
END IF;
END LOOP the_loop_new;
END
BEGIN
-- 定义参数
declare done int(10);
declare p_feeCode varchar(50);
declare abc varchar(50);
declare sqlstr varchar(500);
-- 定义游标
declare feeCodeCursor cursor for select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES Where table_schema='common_db';
-- 定义变量
declare continue handler for not found set done=1;
set done=0;
-- 代开游标
open feeCodeCursor;
-- 执行循环
the_loop_new : LOOP
--
fetch feeCodeCursor into p_feeCode;
Set abc = concat("common_db.",p_feeCode);
SET sqlstr=concat("CREATE OR REPLACE view ",p_feeCode," as select * from ",abc,";");
set @v_sql=sqlstr;
prepare stmt from @v_sql;
EXECUTE stmt;
deallocate prepare stmt;
IF done = 1 THEN
close feeCodeCursor;
LEAVE the_loop_new;
END IF;
END LOOP the_loop_new;
END
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器