mysql存储过程 --游标的使用 取每行记录 (多字段)

delimiter $
create PROCEDURE phoneDeal()
BEGIN
    DECLARE  id varchar(64);   -- id
    DECLARE  phone1  varchar(16); -- phone
    DECLARE  password1  varchar(32); -- 密码
    DECLARE  name1 varchar(64);   -- id
    -- 遍历数据结束标志
    DECLARE done INT DEFAULT FALSE;
    -- 游标
    DECLARE cur_account CURSOR FOR select phone,password,name from account_temp;
    -- 将结束标志绑定到游标
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    -- 打开游标
    OPEN  cur_account;
    -- 遍历
    read_loop: LOOP
            -- 取值 取多个字段
            FETCH  NEXT from cur_account INTO phone1,password1,name1;
            IF done THEN
                LEAVE read_loop;
             END IF;

        -- 你自己想做的操作
        insert into account(id,phone,password,name) value(UUID(),phone1,password1,CONCAT(name1,‘的家长‘));
    END LOOP;

    CLOSE cur_account;
END $

  

时间: 2024-08-15 10:34:50

mysql存储过程 --游标的使用 取每行记录 (多字段)的相关文章

MySQL 存储过程/游标/触发器/事务

来源:http://www.cnblogs.com/zhuyp1015/p/3575823.html 将会用到的几个表 mysql> DESC products; +------------+--------------+------+-----+---------+----------------+| Field      | Type         | Null | Key | Default | Extra          |+------------+--------------+-

MySQL 存储过程游标

一.创建游标 游标用declare语句创建.如下面的例子所示: create procedure test2() begin declare cursorTest cursor for select * from allIntersection; end; 二.打开.关闭游标 打开游标 open cursorTest; 关闭游标 close cursorTest; CLOSE释放游标使用的所有内部内存和资源,因此在每个游标不再需要时都应该关闭.在一个游标关闭后,如果没有重新打开,则不能使用它.但

mysql 存储过程 游标 判断游标是否为空

BEGIN DECLARE id long; DECLARE Done INT DEFAULT 0; DECLARE cashamount DECIMAL(10,2) DEFAULT 0.00; DECLARE scorecamount INT DEFAULT 0; DECLARE userids CURSOR FOR SELECT userid from info_user where isreal = 1; DECLARE CONTINUE HANDLER FOR SQLSTATE '020

MySQL使用游标给指定数据库的所有表添加字段

今天,主管让我在数据库的每张表都添加两个字段,数据库里有好几百张表,逐个去添加显然太费时,并且可能会出差错,例如会漏掉几张表没加的情况. 楼主想到使用游标可以轻松地解决这个问题,以下是我用mysql写的测试代码,不多说,直接上代码: use studentcourse; delimiter $$ drop procedure if exists addcolumn; create procedure addcolumn() BEGIN declare tablename varchar(50);

转 mysql 存储过程初探

https://www.cnblogs.com/qmfsun/p/4838032.htmlMySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/p/5384139.html CREATE PROCEDURE GreetWorld() SELECT CONCAT(@greeting,' World');SET @greeting='Hello';CALL GreetWorld(); https://blog.csdn.net/shaochens

mysql 存储过程实现搬表

实现简单搬表,使用游标循环 第一行 DELIMITER //和最后一行的//必须,否则遇到分号就报错 DELIMITER // create procedure movedata() BEGIN       DECLARE Done INT DEFAULT 0;             DECLARE v_id VARCHAR(30);       /* 声明游标 */       DECLARE rs CURSOR FOR SELECT id FROM `new`.customer;     

MYSQL进阶学习知识拓展一:MySQL 存储过程之游标!

一.MySQL游标的概念 游标介绍: MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解. 有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果. 先有数据基础:游标是在先从数据表中检索出数据之后才能继续灵活操作的技术.   类似于指针:游标类似于指向数据结构堆栈中的指针,用来pop出所指向的数据,并且只能每次取一个. 游标优缺点: 游标的优点: 因为游标是针对行操作的,所以对从数据库中select查询得到的每一

MySQL存储过程和游标

一.存储过程 什么是存储过程,为什么要使用存储过程以及如何使用存储过程,并且介绍创建和使用存储过程的基本语法. 什么是存储过程: 存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样 实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用 他就行了. 存储过程的好处: 由于数据库执行动作时,是先编译后执行的.然而存储过程是一个编译过的代码块,所以执行效率要比 T-SQL语句高. 一个存储过程在程序在网络中交

mysql中游标在存储过程中的详细用法

昨天写的一个东东,分享下给大家. drop PROCEDURE  if exists sp_cleanUserData; CREATE  PROCEDURE `sp_cleanUserData`() BEGIN /*定义游标*/ declare v_dt bigint(20) default 0 ; declare v_num INT DEFAULT 0; /*游标循环到末尾时给定义的常量赋值*/ declare cur_userId   CURSOR FOR select  userId fr