精华内容
下载资源
问答
  • MySQL游标

    2017-09-01 19:59:47
    MySQL在服务端提供只读的、单向的游标。 MySQL游标中指向的对象都是存储在临时表中而不是实际查询到的数据,所以MySQL游标总是只读的。 游标可以逐行指向查询结果。

    MySQL在服务端提供只读的、单向的游标。

    MySQL游标中指向的对象都是存储在临时表中而不是实际查询到的数据,所以MySQL游标总是只读的。

    游标可以逐行指向查询结果。

    展开全文
  • mysql 游标

    2019-11-30 16:47:21
    mysql游标 作用:查询返回的结果很大,可在存储过程或者函数中使用游标逐条读取数据记录 *********************************** 游标 声明游标:declarecursor_name cursor for select_statement 打开游标...

    mysql 游标

     

    作用:查询返回的结果很大,可在存储过程或者函数中使用游标逐条读取数据记录

     

     

    ***********************

    游标

     

    声明游标:declare cursor_name cursor for select_statement

    打开游标:open cursor_name

    使用游标:fetch cursor_name into var1, var2,...

    关闭游标:close cursor_name

    说明:游标只能在存储过程或者函数中使用

     

     

    ***********************

    示例:遍历输出表 test1 的内容

     

    drop procedure if exists hh2;
    
    delimiter //
    create procedure hh2(in count int)
    begin
        declare id,num int;
    	declare i int default 0;
    	declare cur cursor for select * from test1;
    	
    	select @count := count(*) as count from test1;
    	open cur;
    	
    	while i<=@count do
    	  fetch cur into id,num;
    		select id,num;
    		set i=i+1;
    	end while;
    	
    	close cur;
    	
    end //
    
    call hh2(@count);

    注意:游标的声明要放在最后,变量及游标声明完成后在进行其他操作

     

    操作结果1:

          

     

    操作结果2:

          

     

    操作结果3:

          

     

    操作结果3:

          

     

    操作结果4:

          

     

     

    展开全文
  • mysql游标

    2018-02-04 10:19:02
    一个蛮重要的概念,特地记录下来。 引入: 在python中使用了游标之后,会产生一种好奇,我们发现从游标里面提取出来的数据全部都是用元组装的,便产生了好奇,为啥偏偏 是元组...MySQL游标为只读,不可滚动和敏感。

    一个蛮重要的概念,特地记录下来。

    引入:

    在python中使用了游标之后,会产生一种好奇,我们发现从游标里面提取出来的数据全部都是用元组装的,便产生了好奇,为啥偏偏 是元组呢?还不用列表装呢?还有就是,游标不是可以看做指向数据的指针吗?那么能否使用游标来对数据库多原数据进行修改呢?当时没有找到答案,偶然之间发现了下面多一段话

    mysql游标

    • MySQL游标为只读,不可滚动和敏感。

      • 只读:无法通过光标更新基础表中的数据。
      • 不可滚动:只能按照SELECT语句确定的顺序获取行。不能以相反的顺序获取行。 此外,不能跳过行或跳转到结果集中的特定行。
      • 敏感:有两种游标:敏感游标和不敏感游标。敏感游标指向实际数据,不敏感游标使用数据的临时副本。敏感游标比一个不敏感的游标执行得更快,因为它不需要临时拷贝数据。但是,对其他连接的数据所做的任何更改都将影响由敏感游标使用的数据,因此,如果不更新敏感游标所使用的数据,则更安全。 MySQL游标是敏感的。

    现在就恍然大悟了,好像自己找到了真相一般。我们可以发现,是只读的!不能通过游标进行修改,也就是说,不可能通过python脚本使用游标进行修改操作。tan90,因为mysql游标直接指向原始数据。不能滚动但是我们可以重置游标的位置,这个是可以的,比如我再重新读一次数据。
    内存表,临时表,磁盘表

    展开全文
  • MySQL 游标

    2014-12-18 17:14:00
    以下的文章主要介绍的是MySQL游标的使用笔记,其可以用在存储过程的SQL语句,其主要类型主要有以下几种,以下就是对其详细介绍,相信如果你掌握了这项技术,会在以后的学习或是工作中带来很大的帮助。 1、 无返回...

    以下的文章主要介绍的是MySQL游标的使用笔记,其可以用在存储过程的SQL语句,其主要类型主要有以下几种,以下就是对其详细介绍,相信如果你掌握了这项技术,会在以后的学习或是工作中带来很大的帮助。

    1、 无返回结果语句,如:INSERT,UPDATE,DROP, DELETE等

    2、 select语句返回单行变量并可传给本地变量(select ..into)

    3、 返回多行结果集的select语句,并可使用MySQL游标循环处理

    注意,存储过程返回的多行结果集,可以被客户端程序(如php)所接收,但要在一个存储过程中接收另一个存储过程的结果集是不可能的,一般解决办法是存入临时表供其它过程共用

    4、 prepare语句

    以下主要讲述游标及prepare部分

    游标

    定义

    1. DECLARE cursor_name CURSOR FOR SELECT_statement; 

    游标操作

    OPEN 打开游标

    1. OPEN cursor_name; 

    FETCH 获取游标当前指针的记录,并传给指定变量列表,注意变量数必须与MySQL游标返回的字段数一致,要获得多行数据,使用循环语句去执行FETCH

    1. FETCH cursor_name INTO variable list; 

    CLOSE关闭游标

    1. CLOSE cursor_name ; 

    注意:MySQL的游标是向前只读的,也就是说,你只能顺序地从开始往后读取结果集,不能从后往前,也不能直接跳到中间的记录.

    一个完整的例子:

    定义本地变量

    1. DECLARE o varchar(128); 

    定义游标

    1. DECLARE ordernumbers CURSOR  
    2. FOR  
    3. SELECT callee_name FROM account_tbl where acct_timeduration=10800;  
    4. DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;  
    5. SET no_more_departments=0;  

    打开游标

    1. OPEN ordernumbers; 

    循环所有的行

    1. REPEAT  
    2. -- Get order number  
    3. FETCH ordernumbers INTO o;  
    4. update account set allMoneyallMoney=allMoney+72,lastMonthConsumelastMonthConsume=lastMonthConsume-72 where NumTg=@o;  

    循环结束

    1. UNTIL no_more_departments  
    2. END REPEAT; 

    关闭游标

    1. CLOSE ordernumbers;

    DELIMITER $$

    USE `kubauser`$$

    DROP PROCEDURE IF EXISTS `cursortest`$$

    CREATE DEFINER=`coo8new`@`%` PROCEDURE `cursortest`(OUT a VARCHAR(50),OUT b VARCHAR(50))
        BEGIN
        DECLARE _outuserid VARCHAR(50);
        DECLARE _kubauserid VARCHAR(50);
        DECLARE flag INT;
        DECLARE update_cursor CURSOR
        FOR
        SELECT outuserid,kubauserid FROM ecuser_cooperationuser;
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1;
        SET flag=0;
        OPEN update_cursor;
        REPEAT  /*循环*/
        FETCH update_cursor INTO _outuserid,_kubauserid;
            SET a=_outuserid;
            SET b=_kubauserid;
        /*update set where*/
        UNTIL flag
        END REPEAT;
        CLOSE update_cursor ;
               
        END$$

    DELIMITER ;

    转载于:https://www.cnblogs.com/Struggles/p/4172189.html

    展开全文
  • Mysql游标

    2019-05-30 10:13:05
    CREATE PROCEDURE `test`.`new_...-- 需要定义接收游标数据的变量 DECLARE a CHAR(16); -- 遍历数据结束标志 DECLARE done INT DEFAULT FALSE; -- 游标 DECLARE cur CURSOR FOR SELECT i FROM test.t; -- 将...
  • MYSQL游标

    2017-09-27 03:00:37
    #cursor游标,游动的标志 #1条sql对应的n 条结果集资源,去出资源的接口、句柄,就是游标 #沿着游标可以一次去出一行 #declare 声明,declare 游标名 cursor for select_...#在mysql中可以声明continu handler可以操作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,033
精华内容 18,413
关键字:

mysql游标

mysql 订阅