mysql两个结构相同的表合并成一个,用什么语句呢?

表A和表B,结构相同.表A是老数据库里的新闻表,表B是新数据库里的新闻表,现在希望新旧两个表合并,名字还叫B.请问用什么语句呢.我用(SELECT * FROM a) UNION (SELECT * FROM b),发现B和A两个表都没有变化.B也没有多出记录来呢.谢谢!
谢谢各位朋友的回答,但现在还是有个问题,两个表里有一小部分相同数据,一插入的时候就提示duplicate entry 'XXX' for key 'primary'
这个怎么办呢?

---如果没有重复数据,可以直接将A表数据插入到B表
insert into b
select * from a
--你用的Union仅仅是查询,不会影响数据库记录
如果有重复可以这样
insert into b
select * from a
where not exits(select * from b where b.主键=a.主键)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-08

insert  ignore  into B selecrt  from  A。

    mysql是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。

    MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件。

    MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言,由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

本回答被网友采纳
第2个回答  2011-01-18
思路是这样:
首先用 union 合并两个表
然后 批量inset 语句搞定。
最后收工。
结果如下:
inset into b(xx,xx,xx,,) select xx,xx,xx,, from ( (SELECT * FROM a) UNION (SELECT * FROM b))
第3个回答  2011-01-18
insert B
select *
from A
where not exists(select * from b where b.字段1=A.字段1 and b.字段2=A.字段2....); 把字段全补上

更加简单的方法如下:
insert ignore into B
SELECT * FROM A;本回答被网友采纳
第4个回答  2011-01-18
是想把A表的记录插入B表还是想A、B合并成新表??
相似回答