在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL游标多循环一次的问题怎么解决

158次阅读
没有评论

共计 2897 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要讲解了“MySQL 游标多循环一次的问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“MySQL 游标多循环一次的问题怎么解决”吧!

在 MySQL 中使用游标的时候,发现游标多循环一次
想在表中插入一条语句,但是实际上却插入了两条
语句如下:
mysql create table test(id int(5));
Query OK, 0 rows affected (0.13 sec)

mysql delimiter $$
mysql create procedure proc_drop_table()
  – BEGIN
  – /* Declare Variables */
  – DECLARE done_1 INT DEFAULT FALSE;
  – DECLARE v_history_table_name varchar(64);
  – declare the_query VARCHAR(500);
  –
  – /* Declare Conditions */
  – DECLARE not_found CONDITION FOR 1741;
  –
  – /* Declare Cursors */
  – DECLARE cur1 CURSOR FOR select CONCAT(TABLE_SCHEMA, . ,TABLE_NAME) from  information_schema.tables where TABLE_SCHEMA= test and TABLE_NAME like %test%
  –
  – /* Declare Exception Handlers, usually with set actions */
  – /* usually with set actions, the following handler has two forms,
  /*   one with begin .. end statements, and the other without */
  – DECLARE CONTINUE HANDLER FOR NOT FOUND SET done_1 = TRUE;
  –
  –   OPEN cur1;
  –   read_loop_1: LOOP
  –   FETCH cur1 INTO v_history_table_name;
  – /*IF done_1 IS FALSE THEN*/
  – set @v_history_table_name=v_history_table_name;
  –   select concat(insert into , @v_history_table_name, values (10) ) into the_query;
  – SET @stmt=the_query;
  – PREPARE STMT FROM @stmt;
  – EXECUTE STMT;
  – DEALLOCATE PREPARE STMT;
  – /*END IF;*/
  –   IF done_1 THEN
  –   LEAVE read_loop_1;
  – END IF;
  – END LOOP read_loop_1;
  – CLOSE cur1;
  –   end$$
Query OK, 0 rows affected (0.01 sec)

mysql delimiter ;
mysql select * from test;
Empty set (0.00 sec)

mysql call proc_drop_table();
Query OK, 0 rows affected (0.01 sec)

mysql select * from test;
+——+
| id  |
+——+
|  10 |
|  10 |
+——+
2 rows in set (0.00 sec)

解决方法:
在实际执行的语句两边增加 IF 判断

mysql truncate table test;
Query OK, 0 rows affected (0.07 sec)

mysql drop procedure proc_drop_table;
Query OK, 0 rows affected (0.09 sec)

mysql delimiter $$
mysql create procedure proc_drop_table()
  – BEGIN
  – /* Declare Variables */
  – DECLARE done_1 INT DEFAULT FALSE;
  – DECLARE v_history_table_name varchar(64);
  – declare the_query VARCHAR(500);
  –
  – /* Declare Conditions */
  – DECLARE not_found CONDITION FOR 1741;
  –
  – /* Declare Cursors */
  – DECLARE cur1 CURSOR FOR select CONCAT(TABLE_SCHEMA, . ,TABLE_NAME) from  information_schema.tables where TABLE_SCHEMA= test and TABLE_NAME like %test%
  –
  – /* Declare Exception Handlers, usually with set actions */
  – /* usually with set actions, the following handler has two forms,
  /*   one with begin .. end statements, and the other without */
  – DECLARE CONTINUE HANDLER FOR NOT FOUND SET done_1 = TRUE;
  –
  –   OPEN cur1;
  –   read_loop_1: LOOP
  –   FETCH cur1 INTO v_history_table_name;
  – IF done_1 IS FALSE THEN
  – set @v_history_table_name=v_history_table_name;
  –   select concat(insert into , @v_history_table_name, values (10) ) into the_query;
  – SET @stmt=the_query;
  – PREPARE STMT FROM @stmt;
  – EXECUTE STMT;
  – DEALLOCATE PREPARE STMT;
  – END IF;
  –   IF done_1 THEN
  –   LEAVE read_loop_1;
  – END IF;
  – END LOOP read_loop_1;
  – CLOSE cur1;
  –   end$$
Query OK, 0 rows affected (0.00 sec)

mysql delimiter ;
mysql call proc_drop_table();
Query OK, 0 rows affected (0.01 sec)

mysql select * from test;
+——+
| id  |
+——+
|  10 |
+——+
1 row in set (0.00 sec)

感谢各位的阅读,以上就是“MySQL 游标多循环一次的问题怎么解决”的内容了,经过本文的学习后,相信大家对 MySQL 游标多循环一次的问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计2897字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 亚洲第一极品精品无码久久 | 无套中出丰满人妻无码 | 色www永久免费网站国产 | 亚洲国产精品无码久久久秋霞2 | 又大又粗欧美黑人aaaaa片 | 欧美中文字幕在线 | 日韩a级成人免费无码视频 日韩a级片视频 | 久久精品无码一区二区www | 99 久久99久久精品免观看 | 国产一级毛片午夜福 | 精品无码人妻一区二区免费蜜桃 | 小明成人永久免费观看视频 | 色视频免费国产观看 | 日韩成人毛片高清视频免费看 | 久久成人网18网站 | 特黄一级真人毛片 | 美女无遮挡免费视频网站 | 日本黄色大片网站 | 五月婷婷俺也去开心 | 一区二区三区在线 | 欧洲 | 午夜不卡无码中文字幕影院 | 久久国产精品免费 | 欧美在线视频免费观看 | 亚洲激情综合网 | 久久中文字幕美谷朱里 | 羞羞色院91蜜桃在线观看 | 99久久国语露脸精品国产 | 免费观看日本大片毛片 | 成人免费无码大片a毛片抽搐色欲 | 国产成+人+综合+欧美 亚洲 | 欧美精品久久一区二区三区 | 国产资源网站 | 只有这里有精品 | 久久男人的天堂 | 好紧好爽好深再快点av在线 | 日本久草| 澳门四虎影院 | 色琪琪av中文字幕一区二区 | 人人妻人人妻人人片av | 国产精品久久久久久吹潮 | 国产欧美日韩精品一区二 |