mysql存储过程(查询数据库内表 游标循环 if判断 插入别的表内)
BEGIN
declare f_age int;
DECLARE incode1 VARCHAR(100);
DECLARE incode2 VARCHAR(100);
DECLARE incode3 VARCHAR(100);
DECLARE incode4 VARCHAR(100);
DECLARE incode5 VARCHAR(100);
DECLARE incode6 VARCHAR(100);
declare a1 int;
declare a2 int;
declare a3 int;
declare a4 int;
declare b int default 0;
declare b1 int default 0;
declare f_id varchar(100);
declare f_eventtime varchar(100);
declare f_eventdata varchar(100);
declare f_addtime varchar(100);
declare f_uptime varchar(100);
declare f_name varchar(100);
declare f_shortname varchar(100);
declare f_logo varchar(100);
declare f_qyxz2 varchar(100);
declare f_sshy2 varchar(100);
declare f_ssqy2 varchar(100);
declare f_lxdh varchar(100);
declare f_lxcz varchar(100);
declare f_zcd varchar(100);
declare f_fddbr varchar(100);
declare f_qsjg varchar(100);
declare f_qsjgdbr varchar(100);
declare f_lssws varchar(100);
declare f_qzlv varchar(100);
declare f_kjssws varchar(100);
declare f_qzkjs varchar(100);
declare f_brief varchar(100);
declare f_delflag varchar(100);
declare f_code varchar(100);
declare a varchar(100);
/*定义游标 cur_1*/
DECLARE cur_1 CURSOR FOR select
name as f_name,
shortname f_shortname,
logo f_logo,
qyxz2 f_qyxz2,
sshy2 f_sshy2,
ssqy2 f_ssqy2 ,
lxdh f_lxdh,
lxcz f_lxcz,
zcd f_zcd,
fddbr f_fddbr,
qsjg f_qsjg,
qsjgdbr f_qsjgdbr,
lssws f_lssws,
qzlv f_qzlv,
kjssws f_kjssws,
qzkjs f_qzkjs,
brief f_brief,
delflag f_delflag,
batchno f_eventdata,
code f_code
from bl_b_companyenenthistory_stop where isnew=1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
set f_id='BL_L';
SELECT MAX(incode) into incode1 from bl_b_companyevent;
set incode2=SUBSTRING(incode1,5,1);
if incode2=0 THEN
set incode5=SUBSTRING(incode1,6,LENGTH(incode1));
set incode3='BL_L0';
set incode4=CONCAT(incode3,incode5);
end if;
if incode2!=0 THEN
set incode5=SUBSTRING(incode1,5,LENGTH(incode1));
set incode3='BL_L';
set incode4=CONCAT(incode3,incode5);
end if;
OPEN cur_1;
FETCH cur_1 INTO f_name,
f_shortname,
f_logo,
f_qyxz2,
f_sshy2,
f_ssqy2,
f_lxdh,
f_lxcz,
f_zcd,
f_fddbr,
f_qsjg,
f_qsjgdbr,
f_lssws,
f_qzlv,
f_kjssws,
f_qzkjs,
f_brief,f_delflag,f_eventdata,f_code;
while b<>1 do
set incode5 =incode5+1;
set incode6=CONCAT(incode3,incode5);
select f_name,f_shortname,f_logo,f_qyxz2,f_sshy2,f_ssqy2;
IF f_name is not null then
select count(*) into a2 from bl_b_companyevent WHERE bklx = 1 and sslx='01' and eventstatus='01' and isnew='1' and name=f_name ;
if a2=0 THEN
select count(*) into a3 from bl_b_companyevent
WHERE
bklx = 1
and
sslx='01'
and
eventstatus='02'
AND
checkstatus='05'
and
isnew='1'
and name=f_name;
if a3=0 THEN
SELECT '添加数据';
insert into bl_b_companyevent(
id,
sclx,
sclx2,
bklx,
sslx,
eventstatus,
eventstatus2,
checkstatus,
checkstatus2,
eventtime,
eventdata,
incode,
name,
namehistory,
shortname,
shortnamehistory,
logo,
qyxz2,
sshy2,
ssqy2,
lxdh,
lxcz,
zcdz,
fddbr,
qsjg,
qsjgmc,
qsjbrmc,
lsswsmc,
lsjbrmc,
kjsswsmc,
kjsswsjbrmc,
gsjj,
addr,
addtime,
uptr,
upttime,
isnew,
delflag,
sslx2
)
VALUES(
CONCAT(f_id,REPLACE(UUID(),'-','')),
'09',
'其他',
1,
'01',
'02',
'审核中',
'05',
'中止审查',
date_format(REPLACE(f_eventdata,"-",""),'%Y-%m-%d %H:%i:%s'),
date_format(REPLACE(f_eventdata,"-",""),'%Y-%m-%d'),
incode6,
f_name,
f_name,
f_shortname,
f_shortname,
f_logo,
f_qyxz2,
f_sshy2,
f_ssqy2,
f_lxdh,
f_lxcz,
f_zcd,
f_fddbr,
f_qsjg,
f_qsjg,
f_qsjgdbr,
f_lssws,
f_qzlv,
f_kjssws,
f_qzkjs,
f_brief,
pd_addr,
NOW(),
pd_uptr,
NOW(),
'1',
f_delflag,
'IPO'
);
end IF;
if a3!=0 THEN
SELECT '更新数据';
UPDATE bl_b_companyevent SET
code=f_code,
sshy2=f_sshy2,
ssqy2=f_ssqy2,
lxdh=f_lxdh,
lxcz=f_lxcz,
zcdz=f_zcd,
fddbr=f_fddbr,
qsjg=f_qsjg,
qsjgmc=f_qsjg,
qsjbrmc=f_qsjgdbr,
lsswsmc=f_lssws,
lsjbrmc=f_qzlv,
kjsswsmc=f_kjssws,
kjsswsjbrmc=f_qzkjs,
gsjj=f_brief,
uptr=pd_uptr,
upttime=NOW(),
eventstatus='02',
eventstatus2='审核中'
WHERE name=f_name;
end if;
end IF;
END if;
FETCH cur_1 INTO f_name,
f_shortname,
f_logo,
f_qyxz2,
f_sshy2,
f_ssqy2,
f_lxdh,
f_lxcz,
f_zcd,
f_fddbr,
f_qsjg,
f_qsjgdbr,
f_lssws,
f_qzlv,
f_kjssws,
f_qzkjs,
f_brief,f_delflag,f_eventdata,f_code; /*取下一条记录*/
end while;
close cur_1;
END
mysql存储过程(查询数据库内表 游标循环 if判断 插入别的表内)的更多相关文章
- Mysql存储过程查询数据插入别的表里。
DELIMITER// CREATE PROCEDURE setRoomManger2() BEGIN ); ; DECLARE cur CURSOR FOR SELECT roomid FROM n ...
- Mysql存储过程查询结果赋值到变量的方法
Mysql存储过程查询结果赋值到变量的方法 把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用set或into的 ...
- 如何实现MySQL随机查询数据与MySQL随机更新数据?
以下的文章主要介绍的是MySQL随机选取数据,对实现MySQ随机查询数据与MySQ随机更新数据的实际操作步骤的描述,以及对其实际操作中所要用到的语句的描述,以下就是对其具体操作步骤的描述. MySQL ...
- mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作
一.首先说下本篇博客所实现功能的背景和功能是怎样的: 背景:因为公司项目开始迁移新平台项目,所以以前的平台老数据以及订单信息需要拆分表,而且需要业务逻辑来分析以前的订单表,来拆分成另外的几个新表,包括 ...
- 性能测试四十:Mysql存储过程造数据
性能测试是基于大量数据的,而进行性能测试之前肯定没那么多数据,所以就要自己准备数据 数据构造方法: 1.业务接口 -- 适合数据表关系复杂 -- 优点:数据完整性比较好2.存储过程 -- 适合表数量少 ...
- SQLServer 命令批量删除数据库中指定表(游标循环删除)
DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ON ...
- 分享:mysql 随机查询数据
在mysql中查询5条不重复的数据,使用以下: 1 SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了.但是真正测试一下才发现这样效率非常低.一个1 ...
- MySQL 数据库查询数据,过滤重复数据保留一条数据---(MySQL中的row_number变相实现方法)
转自: http://www.maomao365.com/?p=10564 摘要: 下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 实现思路: 在MySQL数据库中没有row_numbe ...
- Python3操作MySQL,查询数据并保存到文件中
我们在测试过程中,可能需要到数据库中拉去一些数据,为从测试准备.比如最近在做接口性能测试的时候,就需要很多数据来支撑,所以就需要的数据库去查询数据,下面就是python3 查询 mysql 并且保存到 ...
随机推荐
- 从零开始学习前端JAVASCRIPT — 14、闭包与继承
一.闭包 1 . 概念:闭包就是能够读取其他函数内部变量的函数.在JS中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解为”定义在一个函数内部的函数”. 2 . 闭包的特点 1)可以读取 ...
- centos7安装zabbix3.2.4
系统:CentOS Linux release 7.2.1511 (Core) zabbix:3.2.4 一.yum -y install httpd mysql mysql-server mysql ...
- eviews 9.5新版本——平均预测、面板效应检验
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 一.界面优化 eviews9.5 更友好,可以 ...
- 笔记本CPU低压和标压有什么区别?
笔记本CPU英文称Mobile CPU(移动CPU),它除了追求性能,也追求低热量和低耗电,最早的笔记本电脑直接使用台式机的CPU,但是随CPU主频的提高, 笔记本电脑狭窄的空间不能迅速散发CPU产生 ...
- (二十七)mongodb操作学习
在不使用mongodbVUE图形界面工具的情况下,打开数据库和集合后,如果要: 插入一条字段名为name,内容为java的记录,可以写成x={name:"java"};,然后 ...
- Error: expected expression, got '}'
1.错误描述 Error: expected expression, got '}' .globalEval/<@http://localhost:8080/Sys/resource/globa ...
- 芝麻HTTP:pyspider的安装
pyspider是国人binux编写的强大的网络爬虫框架,它带有强大的WebUI.脚本编辑器.任务监控器.项目管理器以及结果处理器,同时支持多种数据库后端.多种消息队列,另外还支持JavaScript ...
- 复制粘贴之插件(jquery.zclip.min.js)需要安装flash
.line{margin-bottom:20px;} /* 复制提示 */ .copy-tips{position:fixed;z-index:999;bottom:50%;left:50%;marg ...
- JNDI在server.xml中的配置(全局和局部的)
总结: 全局就是在数据源server.xml中配置,然后通过和项目名相同的xml来进行映射.对所有的项目都起作用.那个项目需要就在对应的tomcat下配置一个与项目名相同的xml映射文件. 局部的就是 ...
- 多线程之倒计时器CountDownLatch和循环栅栏CyclicBarrier
1.倒计时器CountDownLatch CountDownLatch是一个多线程控制工具类.通常用来控制线程等待,它可以让一个线程一直等待知道计时结束才开始执行 构造函数: public Count ...