返回顶部
首页 > 资讯 > 数据库 >MySQL 游标
  • 396
分享到

MySQL 游标

2024-04-02 19:04:59 396人浏览 安东尼
摘要

光标声明声明光标DECLARE cursor_name CURSOR FOR select_statement这个语句声明一个光标。也可以在子程序中定义多个

光标声明

声明光标
DECLARE cursor_name CURSOR FOR select_statement

这个语句声明一个光标。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字。

注意:SELECT语句不能有INTO子句。

打开光标
OPEN cursor_name

这个语句打开先前声明的光标。

前进光标
FETCH cursor_name INTO var_name [, var_name] ...

这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针。

关闭光标
CLOSE cursor_name

这个语句关闭先前打开的光标。 

 

批量添加索引

共享一个批量添加索引的游标,当一个库中有上百张表结构一样但是名称不一样的表,这个时候批量操作就变得简单了。

MySQL 游标

#删除创建存储过程
DROP PROCEDURE IF EXISTS FountTable;
DELIMITER $$CREATE PROCEDURE FountTable()BEGIN
    DECLARE TableName varchar(64); 
    #声明游标    DECLARE cur_FountTable CURSOR FOR SELECT TABLE_NAME FROM infORMation_schema.TABLES WHERE TABLE_SCHEMA='front' AND TABLE_NAME LIKE 'student%';    DECLARE EXIT HANDLER FOR not found CLOSE cur_FountTable;
    #打开游标    OPEN cur_FountTable;
    REPEAT         FETCH cur_FountTable INTO TableName;
         #定义预处理         SET @sqlSTR1 = CONCAT('create index Flag on ','`',TableName,'`',' (Flag); '); 
         SET @SQLSTR2 = CONCAT('create index State on ','`',TableName,'`',' (State); '); 
         SET @SQLSTR3 = CONCAT('create index upload on ','`',TableName,'`',' (upload); '); 
         SET @SQLSTR4 = CONCAT('create index ccFlag on ','`',TableName,'`',' (lockFlag); '); 
         SET @SQLSTR5 = CONCAT('create index comes on ','`',TableName,'`',' (comes); '); 
         ###SET @SQLSTR=CONCAT(@SQLSTR1,@SQLSTR2,@SQLSTR3,@SQLSTR4,@SQLSTR5 );         PREPARE STMT1 FROM @SQLSTR1; 
         PREPARE STMT2 FROM @SQLSTR2;  
         PREPARE STMT3 FROM @SQLSTR3; 
         PREPARE STMT4 FROM @SQLSTR4;  
         PREPARE STMT5 FROM @SQLSTR5;  
         EXECUTE STMT1; 
         EXECUTE STMT2; 
         EXECUTE STMT3; 
         EXECUTE STMT4; 
         EXECUTE STMT5; 
         DEALLOCATE PREPARE STMT1;         DEALLOCATE PREPARE STMT2;         DEALLOCATE PREPARE STMT3;         DEALLOCATE PREPARE STMT4;         DEALLOCATE PREPARE STMT5;
        # SELECT @SQLSTR;
         
    UNTIL 0 END REPEAT;
    #关闭游标    CLOSE cur_FountTable;END $$
DELIMITER ;


CALL FountTable();

MySQL 游标

这里有几个细节:

  • 在声明游标的时候记得修改自己需要查询的条件

  • 在预处理这里也需要改成对应的字段

  • 在定义条件变量的时候这里我使用的是EXIT就是遇到错误就中断,当然也可以使用CONTINUE 。

 

注意:由于Mysql在存储过程当中无法将查询出来的变量名直接作为表名来用,所以这里要用到动态拼接SQL的方法,但是通常的SET CONCAT的方法并不管用,所以这里就使用了PREPARE来进行预编译。

 在定义游标之前所以的定义都只能通过decalre定义,不能使用SET定义!!!!!!


您可能感兴趣的文档:

--结束END--

本文标题: MySQL 游标

本文链接: https://lsjlt.com/news/40544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL 游标
    光标声明声明光标DECLARE cursor_name CURSOR FOR select_statement这个语句声明一个光标。也可以在子程序中定义多个...
    99+
    2024-04-02
  • MySQL游标
    阅读目录 定义游标的作用游标的使用游标语法条件处理 创建表:test1、test2、test3写一个函数,计算 test1 表中 a、b 字段所有的和测试游标过程解析 定义 游标(Cursor)是处理数据的一种方法,为了...
    99+
    2023-08-30
    mysql 数据库 java
  • MySQL 游标 - G
    MySQL 游标   SQL语句是“面向集合编程”,重点在于“获得什么”,而不是“如何获得”。 有时候我们不需要对查询结构集的每一条都进行相同的操作,而是只操作其中的某些行,这时候就需要面向过程的编程方法,而游标就是面向过程编程...
    99+
    2016-08-31
    MySQL 游标 - G
  • MySQL中的游标
    什么是游标? 游标(cursor)是一个存储在MySQL服务器上的数据库查询, 它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游 标之后,应用程序可以根据需要滚动或浏览其中的数据。 注意:MySQL游标只能用于 ...
    99+
    2023-09-01
    单元测试 自动化测试 职场和发展 软件测试 mysql
  • mysql基础五 游标
    一、游标的定义: create procedure p12()begin declare row_name varchar(20);declare row_num int; declare myC...
    99+
    2024-04-02
  • mysql游标是什么
    本篇内容介绍了“mysql游标是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明游标是用来存储查询结果集的数据类型 , 在存储过程和函...
    99+
    2023-06-20
  • 如何使用mysql游标
    这篇文章主要为大家展示了如何使用mysql游标,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。什么是游标:如果你前面看过mysql函数,会发现无法使用返回多行结...
    99+
    2024-04-02
  • MySQL游标详细介绍
    目录1、什么是游标(或光标)2、如何使用游标1、声明游标2、打开游标3、使用游标4、关闭游标3、代码举例4、小结1、什么是游标(或光标) 虽然我们也可以通过筛选条件 WHERE...
    99+
    2024-04-02
  • MySQL存储过程和游标
    一、存储过程 什么是存储过程,为什么要使用存储过程以及如何使用存储过程,并且介绍创建和使用存储过程的基本语法。什么是存储过程:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样...
    99+
    2019-12-05
    MySQL存储过程和游标
  • mysql声明游标的方法
    mysql声明游标的方法: 声明变量和游标 declare result varchar(3000); declare flag1 varchar(100); DECLARE done INT...
    99+
    2022-05-16
    mysql 声明游标
  • MySQL游标语法的用法
    本篇内容主要讲解“MySQL游标语法的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL游标语法的用法”吧! 1、基本语法:  Sql代码  #定义游...
    99+
    2024-04-02
  • mysql和Oracle游标的用法
    本篇内容介绍了“mysql和Oracle游标的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用游标根...
    99+
    2024-04-02
  • MySQL中怎么使用游标
    这篇文章主要介绍了MySQL中怎么使用游标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。要明白什么是游标,首先要了解存储过程,存储过程是事先...
    99+
    2024-04-02
  • 正确使用MySQL JDBC游标
    转载自:http://blog.csdn.net/seven_3306/article/details/9303879该文章提出三种方式可以正确使用mysql 游标1、当statement设置以下属性时,采用的是流数据接收方式,每次只从服务...
    99+
    2023-06-03
  • 游标
    一个对表进行查询的SQL语句通常都会产生一组记录,称为结果集。但是许多应用程序,尤其PL/SQL嵌入式的主语言(如java,C等),通常并不能把整个结果集作为一个单元来处理,因此,这些应用程序需要一种机制来保证每次只处理结果集中的...
    99+
    2020-02-14
    游标
  • MySQL函数和游标之初见
    MySQL函数 基本语法 函数申明要声明返回类型,用returns指定。 函数体中要有返回语句,return 返回值。 函数执行有别与存储过程执行,不需要Call关键字。 定义一个返回时间和uuid拼接字符串的函数 -- 创建函数 CR...
    99+
    2019-11-26
    MySQL函数和游标之初见
  • MySQL数据库高级(九)——游标
    MySQL数据库高级(九)——游标 一、游标简介 1、游标简介 游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。尽管游标能遍历...
    99+
    2024-04-02
  • mysql游标的作用是什么
    今天小编给大家分享一下mysql游标的作用是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2024-04-02
  • mysql:存储过程-游标遍历
    前情提要 因工作需要要写一些sql脚本,进行一些数据的修改。 直接在数据库ide中写sql涉及就到一些逻辑的判断。 比如判断根据参数判断这条数据存不存在,不存在插入,存在则删除。 最开始查搜索引擎mysql是支持if判断的,根据格式写完...
    99+
    2023-09-27
    java 后端 mysql sql
  • MySQL游标的介绍与使用
    目录定义游标的作用游标的使用游标语法条件处理创建表-test1-test2-test3测试游标过程解析定义 游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行遍历数据的...
    99+
    2022-12-16
    MySQL游标 MySQL游标是什么
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作