mysql 存储过程(一)
来源:互联网 发布:东方不败知夫君是死神 编辑:程序博客网 时间:2024/05/22 04:54
遍历库中所有表, 更新指定字段为指定的值。(*有的表存在该字段,有的则不存在)
drop PROCEDURE if exists update_orgCode;delimiter//create procedure update_orgCode(IN SEND_SYSTEM VARCHAR(50),IN UPLOAD_ORG_CODE VARCHAR(50),IN PROVIDER_NAME VARCHAR(50))begin DECLARE tablename VARCHAR(30); /* 遍历游标结束标志 */ DECLARE Done INT DEFAULT 0; DECLARE err,err2 INT DEFAULT 0; /* 定义预处理sql语句 */ DECLARE SQL_FOR_UPDATE VARCHAR(500); /* 申明游标 */ DECLARE rs CURSOR FOR select table_name from information_schema.tables where table_schema='ehr10'; /* 游标异常处理 */ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1; /*when "not found" occur,just continue,这个是个条件处理,针对NOT FOUND的条件*/ /* update 异常处理1 */ DECLARE CONTINUE HANDLER FOR 1054 SET err = 1; /*when "Unknown column 'SEND_SYSTEM' in 'field list'" occur,just continue,这个是个条件处理,针对NOT FOUND的条件*/ /* update 异常处理2 */ DECLARE CONTINUE HANDLER FOR 1062 SET err2 = 1; /*[Err] 1062 - Duplicate entry '10839-xianfengYL-xianfengYL' for key 'PRIMARY'" occur,just continue,这个是个条件处理,针对NOT FOUND的条件*/ /* 打开游标 */ open rs; /* 获取表名 */ FETCH rs INTO tablename; /* 遍历开始 */ REPEAT SET SQL_FOR_UPDATE = CONCAT("UPDATE ",tablename," SET SEND_SYSTEM = '",SEND_SYSTEM,"',UPLOAD_ORG_CODE='",UPLOAD_ORG_CODE,"',PROVIDER_NAME='",PROVIDER_NAME,"';"); -- 拼接查询sql语句 SET @sql = SQL_FOR_UPDATE; PREPARE stmt FROM @sql; -- 预处理动态sql语句 IF err THEN SET err = 0; -- 预处理sql 不成功, 改变 重置 err ELSE -- 预处理 sql 成功, 执行 update sql EXECUTE stmt ; -- 执行sql语句 deallocate prepare stmt; -- 释放prepare END IF; IF err2 THEN select tablename;set Done = 1; -- 输出表名,退出遍历 END IF; /* 调试 */ -- SELECT tablename; /* 获取表名 */ FETCH rs INTO tablename; /* 遍历结束 */ UNTIL Done END REPEAT; /* 关闭游标 */ close rs;end;//delimiter;
refrences
我的MYSQL学习心得(十) 自定义存储过程和函数
mysql存储过程详解
mysql存储过程之游标遍历数据表
MySql存储过程—7、游标(Cursor)
MySQL存储过程调试?
mysql 存储过程中使用动态sql语句
MySQL存储过程中捕获异常的方法
mysql存储过程之异常处理篇
0 0
- mysql存储过程(一)
- Mysql 存储过程(一)
- mysql 存储过程(一)
- mysql存储过程(一)
- MYSQL存储过程(一)
- mysql存储过程(一)
- MySql存储过程实例解析(一)
- Mysql存储过程数据汇总(一)
- mysql 存储过程 (一) 基础
- MySQL存储过程的学习(一)
- MySQL之存储过程(一)
- 存储过程(一)
- 存储过程(一)
- 存储过程(一)
- 存储过程(一)
- 存储过程(一)
- Mysql存储过程(一)——原子性
- Mysql存储过程(一)——原子性
- Android BLE应用开发的注意事项
- leetcode-java-129. Sum Root to Leaf Numbers
- 2016年华为机试题(贪心算法)
- [SCOI2005]骑士精神
- cell上button动画延迟的解决
- mysql 存储过程(一)
- Android 打开关闭GPRS数据流量
- HDFS总结
- 天纵智能软件快速开发中国地图统计分析插件
- ios 合并framework
- 不错的网站
- Myeclipse安装SVN插件
- c++中的左值与右值
- Github项目实战--viewpager实现简单右滑返回