1、批量根据复杂的SQL查询结果插入到新表

DELIMITER &&
CREATE PROCEDURE settlePADTEST()
begin
  
    DECLARE c_statTime VARCHAR(100);
    DECLARE c_uid BIGINT(20);
    DECLARE c_price DECIMAL(20,2);
    DECLARE cur_award CURSOR for
SELECT sum(IFNULL(aa.`comprice`,0)+ IFNULL(aa.`chanprice`,0)) as price,aa.`distid` as userId,date_format(bb.order_time, '%Y-%m-%d %H:%i:%s') as statTime  FROM `commission` aa left join order bb on aa.order_no = bb.order_id where aa.`commission_type` =2 and aa. yn =1 and bb.order_time >="2019-01-01 00:00:00" and bb.order_time <="2019-01-31 23:59:59"  group by aa.`distid`,date_format(bb.order_time, '%Y%m%d');   
    OPEN cur_award;
  LOOP
   FETCH cur_award INTO c_price,c_uid,c_statTime;
     INSERT INTO platxxxxd (aid,piid, award_user_real_name, award_user_mobile, creator_nick, creator_id, modified, yn, award_user_id, award_amount,created) VALUES (1001, 2342,'' , '', 'lalala',115, now(), 1,c_uid, c_price, c_statTime);
  END LOOP;
end&&
delimiter;

2、批量根据复杂的SQL查询结果修改或插入到新表

DELIMITER &&
CREATE PROCEDURE settleTESTV2()
begin
    DECLARE c_id BIGINT(20);
    DECLARE c_aid BIGINT(20);
    DECLARE c_pid BIGINT(20);
    DECLARE c_uid BIGINT(20);
    DECLARE c_price DECIMAL(20,2);
    DECLARE cur_award CURSOR for
      SELECT id,aid,pid,user_id,amount FROM `plad` where `act_id`=9 and `created` < '2019-11-01 00:00:00' and yn =1 and state=3;
   
    OPEN cur_award;
  LOOP
   FETCH cur_award INTO c_id,c_aid,c_pid,c_uid ,c_price;
    INSERT into srd  VALUES (null,c_pid,c_uid,c_id,c_price,109,83,CONCAT('lalala',c_aid),now(),now(),1,1);
    set @count=(select count(1) from saat where user_id=c_uid and ynm = 1 and ure=1);
    SELECT @count ;
    if @count >0 then
      update  saa set  atb= atb + c_price,.......................   where  user_id=c_uid and yn = 1 and ure=1 ;
    else
      INSERT INTO saa VALUES (null, c_pid, c_uid, c_price, c_price, 01, 1, NOW(), NOW(), 21, 14);
    END IF;
  END LOOP;
end&&
delimiter;

mysql之存储过程(二)的更多相关文章

  1. MySQL存储过程详解 mysql 存储过程(二)

    mysql存储过程详解 1.      存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...

  2. MySQL 系列(二) 你不知道的数据库操作

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...

  3. MYSQL中存储过程的创建,调用及语法

    MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...

  4. mysql之存储过程

    一.存储过程     迄今为止,使用的大多数 SQL语句都是针对一个或多个表的单条语句.并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成.例如,考虑以下的情形.         1. ...

  5. MySQL基础(二)——DDL语句

    MySQL基础(二)--DDL语句 1.什么是DDL语句,以及DDL语句的作用 DDL语句时操作数据库对象的语句,这些操作包括create.drop.alter(创建.删除.修改)数据库对象. 2.基 ...

  6. [转]MYSQL 创建存储过程

    MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...

  7. mysql 的存储过程_多字段

    mysql 的存储过程 一.准备工作 新建一个表 /*Navicat MySQL Data Transfer Source Server : localhost_3306Source Server V ...

  8. mysql 创建存储过程

    mysql 创建存储过程 实例一: CREATE PROCEDURE cp_test() BEGIN declare a int; declare b int; ; ; select a,b; END ...

  9. mysql 数据库(二)数据库的基本操作

    mysql 数据库(二)数据库的基本操作 用户管理,添加权限,创建,显示,使用数据库 1 显示数据库:show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于 ...

  10. MySQL数据库----存储过程

    存储过程 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql -- 存储过程的优点: -- 1.程序与数据实现解耦 -- 2.减少网络传输的 ...

随机推荐

  1. h5-伸缩布局

    1.html代码 <div class="box"> <div class="first">1</div> <div ...

  2. oo第四单元及课程总结

    一.第四单元作业总结 第四单元有两次作业,第十三次作业是实现一个UML类图解析器,可以通过输入一些查询指令来查询一些类图的信息.程序的主干部分已经提供,我们的任务就是实现给出的接口,过程并不繁琐.第十 ...

  3. ping内网服务器 新

    #!/bin/bash ip="192.168.1."lastip=(200201202210211212220221222) #ip列表 可以继续添加 ps () { ping ...

  4. 刷题32. Longest Valid Parentheses

    一.题目说明 题目是32. Longest Valid Parentheses,求最大匹配的括号长度.题目的难度是Hard 二.我的做题方法 简单理解了一下,用栈就可以实现.实际上是我考虑简单了,经过 ...

  5. .NET技术-6.0. Expression 表达式树 生成 Lambda

    .NET技术-6.0. Expression 表达式树 生成 Lambda public static event Func<Student, bool> myevent; public ...

  6. js对象属性名和属性值生成新数组时都作为属性值

    const obj = { id:1, name:'zhangsan', age:18 } const arr = []; Object.getOwnPropertyNames(obj).forEac ...

  7. one_day_one_linuxCmd---光标快捷操作

    <坚持每天学习一个 linux 命令,今天我们来学习 切换光标的常用命令> 摘要:最近经常使用 xshell 软件来远程连接各种机器,在 bin/bash 下输入各种命令,因为都是一些非常 ...

  8. win10查看显卡算力

    1.查看笔记本自带算力 运行C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\demo_suite目录下的deviceQue ...

  9. Linux 常用命令全拼

    pwd: print work directory 打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,类似于windows的任务管理器) 常用参数:-auxf ...

  10. NetWork--HTTPS 原理解析<转>

    转载链接:https://www.cnblogs.com/zery/p/5164795.html HTTPS 原理解析   一 前言 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网 ...