问题描述:提供一个csv文件,记录的是一些不同数据库的不同表中的共同字段account_id数据,需要在A库的account表中做关联删除

解决思路:csv文件中储存的都是account_id,六位纯数字id。可以建立一张临时表,将csv数据导入临时表中,最后做关联删除。

1.备份原表
CREATE table A.account_0220 as select * from A.account;
alter table A.account_0220 comment = 'This is a backup table. Please drop it after 20230320'; 2.导入数据到临时表
创建临时表
create table test.transit_tmp(account_id int); 导入数据到临时表
load data local infile '/tmp/0220/202302201526.csv'
into table test.transit_tmp
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n'; 查询临时表数据量
select count(*) from transit_tmp;
+----------+
| count(*) |
+----------+
| 10369 |
+----------+
1 row in set (0.003 sec) 3.查询数据是否匹配
查询account表中与tmp关联数据行数,查询到匹配数据与实际csv数据相差一行
MariaDB [(none)]> select count(*) from A.account where account_id in (select * from test.transit_tmp);
+----------+
| count(*) |
+----------+
| 10368 |
+----------+
1 row in set (42.539 sec)

MariaDB [test]> select * from transit_tmp order by account_id asc limit 1;
+------------+
| account_id |
+------------+
|          0 |
+------------+
1 row in set (0.003 sec)

MariaDB [test]> select * from transit_tmp order by account_id asc limit 2;
+------------+
| account_id |
+------------+
|          0 |
|     261607 |
+------------+
2 rows in set (0.003 sec)
查询到数据不匹配,csv文件中有一行是字段名,load data把account_id这一行当成0插入到了临时表中

删除test.transit_tmp表中数据为0的一行

delete from test.transit_tmp where account_id='0';

4.清理目标表相关数据

set autocommit=0;

delete from A.account where account_id in (select * from test.transit_tmp); 

commit;

Mysql关联删除CSV中的相关数据的更多相关文章

  1. Mysql快速删除表中重复的数据

    表结构 CREATE TABLE T_VENDOR ( ID ) NOT NULL AUTO_INCREMENT COMMENT 'ID', COUNTRY ) DEFAULT NULL COMMEN ...

  2. MySQL将表a中查询的数据插入到表b中

    MySQL将表a中查询的数据插入到表b中 假设表b存在 insert into b select * from a; 假设表b不存在 create table b as select * from a ...

  3. MySQL 查询某个数据库中所有包含数据记录的表名

    MySQL 查询某个数据库中所有包含数据记录的表名 有时根据实际应用需要,需要对数据进行备份. 如果一个数据库中有很多数据表,但是只想备份包含数据记录的那些表数据(空表不做数据备份). 如果通过如下S ...

  4. Oracle、SQLServer 删除表中的重复数据,只保留一条记录

    原文地址: https://blog.csdn.net/yangwenxue_admin/article/details/51742426 https://www.cnblogs.com/spring ...

  5. Oracle删除表中的重复数据

    Oracle数据库删除表中的重复数据,只保留其中的一条,以两个字段为例,提供两种方法 ①.直接delete重复的数据 delete from table_name t1 where (t1.col1, ...

  6. mysql mariadb 删除表中的数据时数据库变大

    删除表中数据以前 [root@RM uar3]# du -sh * 3.3G apache-tomcat-7.0.54 150M instalRM4UAR 0 mariadb 903M mariadb ...

  7. PHP MySQL Delete删除数据库中的数据

    PHP MySQL Delete DELETE 语句用于从数据库表中删除行. 删除数据库中的数据 DELETE FROM 语句用于从数据库表中删除记录. 语法 DELETE FROM table_na ...

  8. mysql关联删除

    <delete id="deleteBatchUserOfSp" parameterType="java.lang.String" > delete ...

  9. 如何删除datatable中的一行数据

    在C#中,如果要删除DataTable中的某一行,大约有以下几种办法: 1,使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(ind ...

  10. MySQL 数据库删除表中重复数据

    采集数据的时候,由于先期对页面结构的分析不完善,导致采漏了一部分数据.完善代码之后重新运行 Scrapy,又采集了一些重复的数据,搜了下删除重复数据的方法. N.B. 删除数据表的重复数据时,请先备份 ...

随机推荐

  1. css穿透

    https://www.cnblogs.com/linjiangxian/p/13183412.html

  2. ubuntu14搭建内网gitlab服务器

    平台 宿主机系统版本:Ubuntu 14.04.5 LTS gitlab软件版本:11.10.8-ee 验证web浏览器版本:Mozilla Firefox 68.3.0esr 安装firefox浏览 ...

  3. 2019之VLC3.071版本Ubuntu 18-win32-64为编译经验记录

    编译环境:1.win7+vmware15+Ubuntu 18 64bit虚拟系统(16也可以)2.gcc 7.4 (大于6即可)3.mingw-w64 5.3.0,及其相关联的x86-64的tool, ...

  4. pytesseract文字识别

    import pytesseract from PIL import Image im=Image.open('image.png') print(pytesseract.image_to_strin ...

  5. 在linux下创建KVM虚拟机

    Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度器进行管理,所 ...

  6. 程序猿、IT男、屌丝

    一个学计算机的,做了金融圈的朋友,对另外做硬件的朋友,如是说: [据说你写的程序代码,必须很浪的计算机才能运行] [ 以后还用写程序吗.不是ChatGPT直接可以出源代码吗?] 程序猿.IT男.屌丝. ...

  7. 内网jenkins跨版本升级

    概要: 原来使用的jenkins版本为1.6,现在需要升级为最新版2.3.6 由于在内网,不能使用jenkins自带的在线升级工具 升级思路: 由于版本跨度太大,直接copy jenkins目录,启动 ...

  8. time命令详解

    Linux中time命令,我们经常用来计算某个程序的运行耗时,用户态cpu耗时,系统态cpu耗时. 例如: $ time foo real        0m0.003s user        0m ...

  9. Quine-McCluskey两级逻辑化简算法原理解析

    转载请务必注明出处:https://www.cnblogs.com/the-wind/p/15764283.html 目录 1 背景介绍:两级逻辑 2 Quine-McCluskey两级逻辑化简 2. ...

  10. Android--观察APP运行日志以及APP的工程目录结构解释

    运行日志 Log:d--便于跟踪调试 APP开发基础 APP的运行环境 第一种情况,就是在Android studio软件客户端上面使用模拟器运行APP 第二种情况,就是使用真实的手机运行APP程序 ...