MYSQL中同一个数据库中的两个表中的数据怎样合并?

MYSQL中同一个数据库中的两个表中的数据怎样合并?,第1张

1、忽略表之间的关联关系

ALTER TABLE db2.dbo.table NOCHECK CONSTRAINT 关系名

2、--将没有重复的数据合并

insert into db2.dbo.table(field1,field2...) select field1,field2... from db1.dbo.table a where a.username not in (select username from db2.dbo.table)

3、将重复的数据写入临时表

select field1,field2... into 新的临时表 from db1.dbo.table a where a.username in (select username from db2.dbo.table)

要将两表合并,必须要有相同的字段和字段数据,ID主键自动增加无疑是最好的选择。

所以,在两个表中,都应该有id主键自动增加的字段。

然后就是下面的sql语句执行了:

假设sdeg和zbug的表结构 都是

ID varchar(4) primary key,

Name varchar(8),

Dept varchar(10),

存储过程如下

CREATE PROCEDURE table_combine()

BEGIN

#第一步把sdeg和zbug两个表进行联合输出到临时表tmp_tab中

create temporary table tmp_tab select * from sdeg union select * from zbut

#第二步创建结果表sdut,并创建主键

create table sdut(ID varchar(4) primary key, Name varchar(8),Dept varchar(10))

#第三步把临时表里面的重复数据过滤并写入sdut

INSERT INTO sdut(ID,Name,Dept) SELECT distinct ID,Name,Dept FROM tmp_tab

#drop临时表

drop table tmp_tab

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6154010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存