mysql多表合并为一张表
有人提出要将4张表合并成一张。数据量比较大,有4千万条数据。有很多重复数据,需要对某一列进行去重。
数据量太大的话,可以看我另外一篇:http://www.cnblogs.com/magmell/p/8941338.html
mysql:思路:
1、导出数据。select into outfile。
2、传输到要导入数据的服务器上。
3、创建一张新表,主键和约束等与那三张表一样。
4、LOAD DATA INFILE导入。利用replace参数进行覆盖达到去重的目的。
LOAD DATA INFILE '/backup/tbl_get.csv' replace INTO TABLE emob.tbl_new;
LOAD DATA INFILE '/backup/tbl_jue.csv' replace INTO TABLE emob.tbl_new;
LOAD DATA INFILE '/backup/tbl_ors.csv' replace INTO TABLE emob.tbl_new;
全部导入后,对其去重:
select * from tbl_new a where a.imgi in (select imgi from tbl_new group by imgi having count(imgi)>1);
oracle:
通过sqlldr工具导入:
1、创建一张表,表中不要有任何约束。
2、先写一个load_ora.ctl文件,内容:
unrecoverable #不产生日志
load data
infile '/usr/local/tbl_imsi2nu.csv'
append into table eyumob.tbl_new #oracle的replace参数是对表原有的数据全部清空,相当于truncate
fields terminated by '\t'
(imgi,"number",cff)
3、执行导入命令:
sqlldr SYSTEM/oracle control=/usr/local/load_ora.ctl log=~/load.log bad=~/soy.bad rows=100000 readsize=20971520 bindsize=20971520 PARALLEL=TRUE DIRECT=TRUE skip_index_maintenance=TRUE
DIRECT=TRUE:可能会导致一些问题,比如索引失效等。最好不要使用。
4、合并后对新表去重:
DELETE FROM eyumob.tbl_new t1 WHERE t1.ROWID <> (SELECT MIN (t2.ROWID) FROM eyumob.tbl_new t2 WHERE t1.imgi = t2.imgi);
5、在表中添加约束
mysql多表合并为一张表的更多相关文章
- sqlserver 把两个sql查询语句查询出来的两张表合并成一张表
第一个sql语句 select companyname gsmc,zb zhibiao from t_gsndzb left join t_companycode on t_gsndzb.gsbh=t ...
- 使用SQL语句将数据库中的两个表合并成一张表
select * into 新表名 from (select * from T1 union all select * from T2) 这个语句可以实现将合并的数据追加到一个新表中. 不合并重复数 ...
- 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中
1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件②安装MySQL数据库(下载地址:https://www.mysql.com/)③安装Navicat Premium来查看数据 ...
- Mysql实现定时清空一张表的旧数据并保留几条数据
要达到如下目的: Mysql数据库会每隔一段时间(可以是2小时,也可以是一天,这个可以自定义),定时对一张库中的表做一个判断,如果这张表的数据超过了20条(这个数据也是自定义的,也可以是200条),就 ...
- MySQL实例多库某张表数据文件损坏导致xxx库无法访问故障恢复
一.问题发现 命令行进入数据库实例手动给某张表进行alter操作,发现如下报错. mysql> use xx_xxx; No connection. Trying to reconnect... ...
- mysql 查询数据库或某张表有多大(字节)
转载:https://www.cnblogs.com/diandiandidi/p/5582309.html 1.要查询表所占的容量,就是把表的数据和索引加起来就可以了 select sum(DATA ...
- 【mybatis】mysql级联更新两个表或多张表的数据
例如 info表和relation表有关联,现在要在一个sql语句中同时级联更新两张表的数据 update security_code_info info LEFT JOIN security_cod ...
- mysql结构相同的三张表查询一条记录\将一张表中的数据插入另外一张表
将一张表中的数据插入另外一张表 1.两张表结构相同 insert into 表1名称 select * from 表2名称 2.两张结构不相同的表 insert into 表1名称(列名1,列名2,列 ...
- mysql 如何找出两张表之间的关系
分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的 ...
随机推荐
- bzoj 1858: [Scoi2010]序列操作【线段树】
合并中间那块的时候没取max--WAWAWA 在线段树上维护一堆东西,分别是len区间长度,sm区间内1的个数,ll0区间从左开始最长连续0,ml0区间中间最长连续0,rl0区间从右开始最长连续0,l ...
- bzoj 3714: [PA2014]Kuglarz【最小生成树】
参考:https://blog.csdn.net/aarongzk/article/details/48883741 没想到吧.jpg 来自题解: "如果用sum[i]表示前i个杯子底球的总 ...
- C语言之图像旋转
最近用到了图像向左或者向右旋转90°的情况,纠结了好一会儿,写下来供大家参考. 1 向左旋转90° //unsigned char *pImgData: 输入图像指针 //int WidthIn, i ...
- [USACO 2011 Dec Gold] Threatening Letter【后缀】
Problem 3: Threatening Letter [J. Kuipers, 2002] FJ has had a terrible fight with his neighbor and w ...
- 题解报告:hdu 1398 Square Coins(母函数或dp)
Problem Description People in Silverland use square coins. Not only they have square shapes but also ...
- D. Dasha and Very Difficult Problem 二分
http://codeforces.com/contest/761/problem/D c[i] = b[i] - a[i],而且b[]和a[]都属于[L, R] 现在给出a[i]原数组和c[i]的相 ...
- hdu3433A Task Process( 二分dp)
链接 二分时间,在时间内dp[i][j]表示截止到第i个人已经做了j个A最多还能做多少个B #include <iostream> #include<cstdio> #incl ...
- Webform 内置对象 Session对象、Application全局对象,ViewState
Session 每台电脑访问服务器,都有独立的session,key值都一样,内容不一样. 1.session保存在服务器上. 2.session没有持久性,保存周期就是20分钟. 重点: sessi ...
- Java 线程 —— Wait (等待)和 Notify(唤醒)
Wait (等待)和 Notify(唤醒) 这里讲了一个Wait (等待)和 Notfity(唤醒),下面这个实例(工厂,商店,消费者) 额,然后,你就知道了,需要写三个类:工厂类,Shop类,消费者 ...
- mysql之通过cmd连接远程数据库
---恢复内容开始--- 目录 前提 连接远程数据库 前提: 本地安装了mysql数据库 本地和远程网络是连通的,通过命令ping ip (即ping 192.168.0.333),可以ping通 连 ...