• MYSQL存储过程:批量更新数据


    地区等级的信息储存在jsjh_district表。

    要更新jsjh_goods_district表的district_level地区信息

    DELIMITER $$ 
    DROP PROCEDURE IF EXISTS update_district_level $$
    CREATE PROCEDURE update_district_level()
    BEGIN
    DECLARE row_id INT;#定义变量ID
    DECLARE row_district_id INT;#定义变量地区ID
    DECLARE row_level INT;#定义变量地区等级
    DECLARE done INT;
    -- 定义游标
    DECLARE rs_cursor CURSOR FOR
    SELECT main.id,main.district_id,d.`level` FROM jsjh_goods_district main LEFT JOIN jsjh_district d ON d.id=main.district_id;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
    OPEN rs_cursor; 
    cursor_loop:LOOP
    FETCH rs_cursor INTO row_id,row_district_id,row_level; -- 取数据
    IF done=1 THEN
    leave cursor_loop;
    END IF;
    -- 更新表
    UPDATE jsjh_goods_district SET district_level=row_level WHERE id=row_id;
    END LOOP cursor_loop;
    CLOSE rs_cursor;
    END$$
    DELIMITER ;

     执行存储过程

    CALL update_district_level();

    /* Affected rows: 0  已找到记录: 0  警告: 0  持续时间 1 query: 1.014 sec. */

    执行时间1秒多

    飞儿传媒www.firadio.com
  • 相关阅读:
    常建的性能指标
    性能测试常见分类
    性能测试相关概念和指标
    adb命令熟悉
    打包ajax生成小工具
    深入理解类加载demo
    设计模式七大原则
    javamail邮件实现
    @RequiredArgsConstructor用法
    spring-security查询数据库源码解析
  • 原文地址:https://www.cnblogs.com/firadio/p/5109346.html
Copyright © 2020-2023  润新知