两个数据库合并问题

waterinmoon 2012-02-10 11:39:46
我现在有2个mysql数据库备份文件A,和B,两个备份文件的表结构相同。B里面信息很多,A里面少,不过有A里面有B的部分信息,也有新信息,我现在想把两个数据库里面的数据合并,或者说把A里面的新数据复制到B里面,该怎么做?求高手指教。
...全文
177 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterinmoon 2012-02-11
  • 打赏
  • 举报
回复
最终还是用2楼的死方法了,虽然知道heyli的方法可能行,但是最后还是按简单的来吧!
libo_sina 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heyli 的回复:]
都在同一台服务器吗? 如果是的话 inset select就可以了
如 SELECT * FROM test.member test是数据库名
[/Quote]

若是跨服务器的直接写成sql语句,在用php执行,应该可以吧!直接倒不行就考虑用程序实现吧
yunprince 2012-02-10
  • 打赏
  • 举报
回复
不清楚mysql可以实现不...

直接用死方法?读出a表和b表的数据然后在php里面判断,然后插入或者修改,我想到的就只有这个了......
heyli 2012-02-10
  • 打赏
  • 举报
回复
都在同一台服务器吗? 如果是的话 inset select就可以了
如 SELECT * FROM test.member test是数据库名
heyli 2012-02-10
  • 打赏
  • 举报
回复
不知道你的表结构 不知道你如何确定是新旧记录 当然没有贴完整的代码 你自己变通下就能实现
以主键确定是否重复可用
Insert into DB.b(a, c, d) select a,c,d from DB2.a where DB2.a.id not in (select id from DB.b)
waterinmoon 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 heyli 的回复:]

引用 6 楼 waterinmoon 的回复:

引用 5 楼 heyli 的回复:

Insert into DB.b(a, c, d) select a,c,d from DB2.a
我可以这么理解么Insert into 数据库B(表a,表b,表c) selecet 表a,表b,表c from 数据库A?

不是 只是表跟字段
[/Quote]嗯,我知道,你那方法如果复制到一个空数据库的话是可以的,不过对于一个有数据,主键的序号存在重复的话还是不能执行的。
heyli 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 waterinmoon 的回复:]

引用 5 楼 heyli 的回复:

Insert into DB.b(a, c, d) select a,c,d from DB2.a
我可以这么理解么Insert into 数据库B(表a,表b,表c) selecet 表a,表b,表c from 数据库A?
[/Quote]
不是 只是表跟字段
whxblue 2012-02-10
  • 打赏
  • 举报
回复
假设将数据A中table表记录合并至数据库B中table表,通过表中不允许重复的字段来识别,例如username,可以照如下操作:
INSERT INTO B.table SELECT * FROM A.table WHERE NOT EXISTS (SELECT * FROM B.table WHERE B.table.username=A.table.username)
waterinmoon 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 heyli 的回复:]

Insert into DB.b(a, c, d) select a,c,d from DB2.a
[/Quote]我可以这么理解么Insert into 数据库B(表a,表b,表c) selecet 表a,表b,表c from 数据库A?
heyli 2012-02-10
  • 打赏
  • 举报
回复
Insert into DB.b(a, c, d) select a,c,d from DB2.a
waterinmoon 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heyli 的回复:]

都在同一台服务器吗? 如果是的话 inset select就可以了
如 SELECT * FROM test.member test是数据库名
[/Quote]例如我上面的问题可以选择B数据库然后执行SELECT * FROM A.member这句SQL语句就可以了?可是不行啊

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧