08.批量插入与批量删除

课程内容

批量插入、删除数据 在前端脚本中整理数据 在SQL中嵌入JS脚本 批量处理的条件

课程目标

在SQL中嵌入JS脚本,或在前端脚本中处理数据,实现批量操作

课程概要

批量插入、删除数据

有时,让用户一条一条地添加数据是非常不合理的,比如班级数据,班级名都是按递增规律来定的。

只要用户输入:某个年级有多少个班级,我们就可以知道每个班级的名称。

在Enhancer,有两种方法可以实现批量操作:

在前端脚本中整理数据

insert 将处理后的数据存入到一个自定义变量,方便SQL引用

运行时桥输出:

[2019-05-03 21:52:00.377] [DEBUG] io - SQL 0:
 INSERT INTO `class` ( `grade`, `slot`, `name` ) VALUES ?
[2019-05-03 21:52:00.377] [DEBUG] io - PARAMS:
 [[["二",1,"二(1)班"],["二",2,"二(2)班"],["二",3,"二(3)班"],["二",4,"二(4)班"],["二",5,"二(5)班"],["二",6,"二(6)班"],["二",7,"二(7)班"],["二",8,"二(8)班"],["二",9,"二(9)班"],["二",10,"二(10)班"]]]

在SQL中嵌入JS脚本

delete 本身就有一个变量,包含了需要的数据,通过map对其格式化

运行时桥输出:

[2019-05-03 21:58:58.111] [DEBUG] io - SQL 0:
 UPDATE `class` SET `status` = 0 WHERE `id` in (?)
[2019-05-03 21:58:58.111] [DEBUG] io - PARAMS:
 [[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]]

批量处理的条件

  1. SQL支持

    如上,两个例子都是SQL原本就支持批量的情况,我们对数据的处理最终是基于SQL的。

    insert into支持最大不超过1000条的批量插入,in逻辑也是专门用于批量匹配。

  2. 数据格式

    仔细观察桥输出的PARAMS,输出的是一个数组,如果有多个字段(一般是insert操作),这些字段组成一个数组,多条记录再组成二维数组;如果是单个字段(如in逻辑),可以直接使用一维数组。

results matching ""

    No results matching ""