mysql旧表去重数据导入新表且赋予主键id新值

业务需求:

A表有id,n1,n2,n3字段,为新建空表,

B表有id,n1,n2,n3,n4,n5等字段,为含有数据的旧表,

现将B表中的n1,n2,n3组合的记录去重后导入A表中,并且A表主键也要录入值

方案:将B表的记录查询后去重,同时对查记录结果编排序号,将序号作为待插入A表的id值,sql语句如下:

INSERT INTO A表(id,n1,n2,n3)
select @row :[email protected]row+1 AS id,t1.* from
(
SELECT DISTINCT n1,n2,n3 FROM B表
) t1,(select @row :=0) as t2
时间: 2024-08-03 10:10:55

mysql旧表去重数据导入新表且赋予主键id新值的相关文章

mybatis插入数据后返回自增的主键id

在插入数据时候想自动返回mysql的自增的主键,需要在mapper.xml中配置下: <insert id="insert" parameterType="com.rograndec.wdzs.admin.data.wdzs.entity.ProductCategoryEntity" useGeneratedKeys="true" keyProperty="id" > insert into product_cat

MySQL存储过程---涉及多个表之间的关联关系,且各表中具有相同的字段,以主键id 为例,一定要使用 xx.id加以区分

此篇不放存储过程实例了. 这是我在开发存储过程中碰到的耗时最久的一次问题,存储过程可以跑,但是得到的结果不是自己想要的, 排查了很久,发现是此句中的id惹的祸:   SET projectInfoId =(SELECT id FROM temp.PROJECT_INFO p WHERE 1=1 AND p.ISSUE_KEY = projectKey); 修改为p.id 就OK了 要养成良好习惯,在写字段时记得一定使用 X.xx的格式,避免不必要的错误.

使用Sqoop1.4.4将MySQL数据库表中数据导入到HDFS中

问题导读:         1.--connect参数作用? 2.使用哪个参数从控制台读取数据库访问密码? 3.Sqoop将关系型数据库表中数据导入HDFS基本参数要求及命令? 4.数据默认导入HDFS文件系统中的路径? 5.--columns参数的作用? 6.--where参数的作用? 一.部分关键参数介绍 参数介绍 --connect <jdbc-uri> 指定关系型数据库JDBC连接字符串 --connection-manager <class-name> 指定数据库使用的管

Sqoop1.4.4将MySQL数据库表中数据导入到HBase表中

问题导读:         1.--hbase-table.--hbase-row-key.--column-family及--hbase-create-table参数的作用? 2.Sqoop将关系型数据库表中数据导入HBase中,默认Rowkey是什么? 3.如果关系型数据库表中存在多关键字,该怎么办? 一.简介及部分重要参数介绍 Sqoop除了能够将数据从关系型数据库导入到HDFS和Hive中,还能够导入到HBase表中. --hbase-table:通过指定--hbase-table参数值

优雅的将hbase的数据导入hive表

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} wgx wgx 2 67 2016-04-02T15:15:00Z 2016-04-02T15:15:00Z 1 233 1332 11 3 1562 15.00 Clean Clean false 7.8 磅 0

SQL Server大数据导入导出:将一张表的数据导入到另一张表

今天下午休息的时候又被扔给一项任务:把全国的街道数据导入街道表.但是他们扔给我的SQL脚本是从网上down的一个,跟平台这边的数据库设计的完全不一样. 当时的思路是:先把扔给我的脚本在本地生成一个表,然后选出要的数据,批量插入到开发库所在服务器的表. 然后,按照这个思路做了个测试: INSERT INTO dbo.test_Street(Code,CountyCode,CnName,VersionNo,Creator,CreateTime,ValidStatus) /*要插入数据的表*/ SEL

Oracle数据导入指定表空间

Oracle数据导入指定表空间 1. 打开工具Oracle SQL Plus 以dba身份登录sys用户sqlplus /nologconn [email protected] as sysdba 2. 创建用户并指定表空间 使用客户端工具或者Web管理控制台创建表空间以及用户给用户赋予connect.resource.dba权限grant connect,resource,dba to username; 注意:给oracle用户分配connect.resource角色时,此时connect

Excel表数据导入数据库表中

***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为一张临时表,在插入到正式表中.语句如下: --YK_TYPK插入数据 insert into YK_TYPK --插入'YK_TYPK(通用品库)'数据 select * from Sheet1$_TYPK_caoyao ---------------------------------------

sql*loader的使用(iostat数据导入数据库表)

目的:将iostat指令的数据,导入到文件iostat.dat中,然后通过sqlldr将iostat数据倒入到数据库中 第一步:U1/tiger用户建立表iostat create table iostat(device varchar(10),tps float(20),mb_read_s float(20),mb_wrtn_s float(20) ,mb_read float(20),mb_wrtn float(20)); 第二步:创建源数据文件 Iostat –md /dev/sda2 >