国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

mysql開發之---使用游標雙層嵌套對總表進行拆分為帖子表和回復表_MySQL

來源:懂視網 責編:小采 時間:2020-11-09 19:52:15
文檔

mysql開發之---使用游標雙層嵌套對總表進行拆分為帖子表和回復表_MySQL

mysql開發之---使用游標雙層嵌套對總表進行拆分為帖子表和回復表_MySQL:注意點: (1)進行拆分的總表表名是不同的,所以創建臨時表,把總表的數據先插入臨時表 (2)為了避免最外層游標輪詢數據結束時,拋出 not found 退出程序,不會執行關閉游標等后續操作,定義continue handler, declare continue handle
推薦度:
導讀mysql開發之---使用游標雙層嵌套對總表進行拆分為帖子表和回復表_MySQL:注意點: (1)進行拆分的總表表名是不同的,所以創建臨時表,把總表的數據先插入臨時表 (2)為了避免最外層游標輪詢數據結束時,拋出 not found 退出程序,不會執行關閉游標等后續操作,定義continue handler, declare continue handle

注意點:

(1)進行拆分的總表表名是不同的,所以創建臨時表,把總表的數據先插入臨時表

(2)為了避免最外層游標輪詢數據結束時,拋出 not found 退出程序,不會執行關閉游標等后續操作,定義continue handler, declare continue handler for not found set done1=1;

1.1、外部存儲過程調用主存儲過程

CREATE PROCEDURE `bbs_split_thread_post_outer`(IN `in_tabname` varchar(128))
BEGIN
declare v_row_count int(11);
declare v_sql varchar(200);

-- 必須清空臨時表bbs_fromask_importask_tmp
select sysdate();
truncate table bbs_fromask_importask_tmp;


set @sql=concat('insert into bbs_fromask_importask_tmp select * from ',in_tabname,';');
prepare stmt from @sql;
execute stmt;

call bbs_split_thread_post();


select sysdate();
END

CREATE PROCEDURE `bbs_split_thread_post`()
BEGIN
declare v_source_count int(11);
declare v_thread_pkid int(11);
declare v_thread_pkid_uni_count int(11);
declare done1,done2 int default 0;
declare v_cur_thread_pkid cursor for select pkid,count(*) from bbs_fromask_importask_tmp group by pkid;
declare continue handler for not found set done1=1;


-- 清空臨時表
truncate table pre_data_thread_tmp;
truncate table pre_data_post_tmp;

-- 判斷原表是否有數據,沒有什么也不做
select count(*) into v_source_count from bbs_fromask_importask_tmp;
if v_source_count>0 then
select ifnull(max(id),0) into @thread_max_id from yaolanbbs.pre_data_thread; -- 可做修改
select @thread_max_id;

-- 打開游標
open v_cur_thread_pkid;
repeat
fetch v_cur_thread_pkid into v_thread_pkid,v_thread_pkid_uni_count;
-- 每次fetch最大id自增1
if not done1 then
set @thread_max_id=@thread_max_id+1;
insert into pre_data_thread_tmp(id,title,age,rule,param)
select @thread_max_id,t1.qtitle,t1.age,'age',t1.age from bbs_fromask_importask_tmp t1 where t1.pkid=v_thread_pkid limit 1;
-- 根據pkid對一組數據進行處理
begin
declare v_post_answer text;
declare v_cur_post_record cursor for select t1.answer from bbs_fromask_importask_tmp t1 where t1.pkid=v_thread_pkid;
declare exit handler for not found close v_cur_post_record;
-- declare continue handler for not found set done2=1;

insert into pre_data_post_tmp(tid,text,sort)
select @thread_max_id,t1.qdesc,1 from bbs_fromask_importask_tmp t1 where t1.pkid=v_thread_pkid limit 1;

set @sort=2; ######設置值
open v_cur_post_record;
repeat
fetch v_cur_post_record into v_post_answer;
-- select @sort;
-- select v_post_answer;
insert into pre_data_post_tmp(tid,text,sort) values(@thread_max_id,v_post_answer,@sort);
-- insert into testincre values(@sort,v_post_answer);
set @sort=@sort+1;
until 0 end repeat;
-- select curdate(); 不會執行的原因,定義exit handler
close v_cur_post_record;
end;
end if;
until done1 end repeat;
-- 關閉游標
close v_cur_thread_pkid;
-- select curdate();
/*-- 導入最終表
insert into pre_data_thread(id,title,create_time,age,rule,param)
select id,title,create_time,age,rule,param from pre_data_thread_tmp;
insert into pre_data_post(tid,text,sort,create_time)
select tid,text,sort,create_time from pre_data_post_tmp;
*/
end if;
END

總結:

(1)30G內存沒有負載的情況下,8488276行拆為兩個表共10500000行用時39分鐘

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

mysql開發之---使用游標雙層嵌套對總表進行拆分為帖子表和回復表_MySQL

mysql開發之---使用游標雙層嵌套對總表進行拆分為帖子表和回復表_MySQL:注意點: (1)進行拆分的總表表名是不同的,所以創建臨時表,把總表的數據先插入臨時表 (2)為了避免最外層游標輪詢數據結束時,拋出 not found 退出程序,不會執行關閉游標等后續操作,定義continue handler, declare continue handle
推薦度:
標簽: 帖子 雙層 mysql
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 91中文字幕在线观看 | 国产伦精品一区二区三区视频小说 | 在线99视频 | 亚洲第一视频 | 91精品国产亚一区二区三区 | 夜夜操夜夜爱 | 国产成人精品一区二区三区 | 日本1区2区 | 国产一区二区在线看 | 久久国产毛片 | 久久国内| 午夜精品一区二区三区免费视频 | 国产成人久久久精品毛片 | 欧美中日韩在线 | 劲爆欧美精品13页 | 中文字幕第4页 | 毛片国产 | 日韩欧美精品一区二区 | 久久精品香蕉 | 国产第8页 | 日韩欧美激情视频 | 真人一级一级毛片免费观看 | 国产不卡精品一区二区三区 | a毛片免费视频 | 亚洲欧美日韩精品 | 欧美韩日在线 | 国产成人亚洲综合一区 | 国产香蕉视频在线观看 | 亚洲欧洲日产国码一级毛片 | 欧美视频区 | 精品国产一区二区三区久久久狼 | 99国产精品| 亚洲女同一区二区 | 香蕉久久一区二区不卡无毒影院 | 国产精品久久二区三区色裕 | 国产二区精品 | 中文亚洲欧美日韩无线码 | 国产成人精品久久一区二区小说 | 欧美天天干 | 成人精品视频在线观看完整版 | 久久久久亚洲精品美女 |