版权声明:本文为博主原创文章,欢迎转载,转载须注明出处:By 故三殇 https://blog.csdn.net/qq_39720249/article/details/84524679
目录
一、批量创建1万多条数据
数据库车辆信息表中准备10000多台车的数据:
(1)创建线程组,循环1次:
(2)连接数据池:
(3)添加循环控制器,循环15000次,超过10000是因为接下来的函数会生成重复的车牌号,要去掉重复数据,避免去掉后数据少于10000(模拟新增10000条数据):
(4)新建新增车辆信息JDBC Request:
其中,车牌号运用jmeter的函数助手生成随机5位数,范围在20000~40000之间,20000个随机数,范围大于10000,使得重复的车牌号数据少一点:鄂A${__Random(20000,40000,)}:
(5)运行可生成15000条数据:
二、批量删除重复数据
(1)查询车牌号重复的所有数据:
-- 查询出common_car_info表中car_number重复的数据,car_number升序排列
select * from common_car_info where car_number in (select car_number from common_car_info group by car_number having count(car_number) > 1)
ORDER BY car_number ASC
(2) 删除表中多余的重复记录,重复的车牌号数据都不保留:
-- 删除表中多余的重复记录,重复记录是根据单个字段(car_number)来判断,重复的车牌号数据都不保留
DELETE FROM common_car_info
WHERE car_number IN
(SELECT car_number FROM (SELECT car_number FROM common_car_info GROUP BY car_number HAVING count(car_number) > 1)e)
(3) 查询车牌号重复但不包括id最小的所有数据:
select * from common_car_info
WHERE car_number IN
(SELECT car_number FROM (SELECT car_number FROM common_car_info GROUP BY car_number HAVING count(car_number) > 1 )e)
AND id NOT IN
(SELECT min(id) FROM (SELECT min(id) FROM common_car_info GROUP BY car_number HAVING count(car_number) > 1)f)
(4)删除表中多余的重复记录,重复的车牌号只保留id最那一条的数据:
-- 删除表中多余的重复记录,重复记录是根据单个字段(car_number)来判断,只保留id最小的一条数据
-- 注意:因为用了子查询,所以需要 DELETE 后引用表别名
DELETE C.* FROM common_car_info C
WHERE
car_number IN
(SELECT car_number FROM (SELECT car_number FROM common_car_info GROUP BY car_number HAVING count(car_number) > 1 )e)
AND
id NOT IN
(SELECT min(id) FROM (SELECT min(id) FROM common_car_info GROUP BY car_number HAVING count(car_number) > 1)f)