首页  >  文章  >  后端开发  >  mysql 两个数据库中表的结构不同,怎么把一个表中的数据导入到另一个表中

mysql 两个数据库中表的结构不同,怎么把一个表中的数据导入到另一个表中

WBOY
WBOY原创
2016-06-23 14:23:582271浏览

mysql 两个数据库中表的结构不同,怎么把一个表中的数据导入到另一个表中


回复讨论(解决方案)

表结构不一样 那就只能用php读取数据然后 insert 了.要不咋地?计算机能智能到跟你心灵相通嘛

将表A中的查出来经过php处理将指定的字段用自定义的东西填充或者取出多出的字段然后放入到B表中

怎么个不同法?
给出两表结构,并说明需要将哪个表的哪些字段导入到另一个表的哪些字段中去



这个是要导入表的结构
CREATE TABLE IF NOT EXISTS `job_hr` (
  `m_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `m_login` varchar(50) NOT NULL,
  `m_pwd` varchar(32) NOT NULL,
  `m_sendemail` tinyint(1) NOT NULL DEFAULT '0',
  `m_question` varchar(50) NOT NULL,
  `m_answer` varchar(50) NOT NULL,
  `m_typeid` tinyint(1) NOT NULL DEFAULT '0',
  `m_groupid` tinyint(2) NOT NULL DEFAULT '0',
  `m_email` varchar(100) NOT NULL,
  `m_email2` varchar(100) DEFAULT NULL COMMENT '备用邮箱(S+)',
  `m_emailshowflag` tinyint(1) NOT NULL DEFAULT '0',
  `m_name` varchar(200) NOT NULL,
  `m_sex` tinyint(1) NOT NULL DEFAULT '0',
  `m_birth` date NOT NULL DEFAULT '0000-00-00',
  `m_cardtype` tinyint(1) NOT NULL DEFAULT '0',
  `m_idcard` varchar(20) NOT NULL,
  `m_marriage` varchar(10) NOT NULL,
  `m_polity` varchar(10) NOT NULL,
  `m_hukou` varchar(100) NOT NULL,
  `m_seat` varchar(100) NOT NULL,
  `m_edu` tinyint(2) NOT NULL,
  `m_address` varchar(200) NOT NULL,
  `m_post` varchar(6) NOT NULL,
  `m_contact` varchar(50) NOT NULL,
  `m_chat` varchar(20) NOT NULL,
  `m_tel` varchar(100) NOT NULL,
  `m_telshowflag` tinyint(1) NOT NULL DEFAULT '0',
  `m_fax` varchar(50) NOT NULL,
  `m_url` varchar(100) NOT NULL,
  `m_regdate` int(11) NOT NULL,
  `m_logindate` int(11) NOT NULL,
  `m_loginip` varchar(15) NOT NULL DEFAULT '000.000.000.000',
  `m_loginnum` int(10) NOT NULL,
  `m_level` varchar(50) NOT NULL,
  `m_balance` int(10) NOT NULL DEFAULT '0',
  `m_integral` int(10) NOT NULL DEFAULT '0',
  `m_flag` tinyint(1) NOT NULL DEFAULT '0',
  `m_startdate` date NOT NULL DEFAULT '0000-00-00',
  `m_enddate` date NOT NULL DEFAULT '0000-00-00',
  `m_resumenums` mediumint(6) NOT NULL DEFAULT '0',
  `m_mysendnums` mediumint(6) NOT NULL DEFAULT '0',
  `m_myinterviewnums` mediumint(6) NOT NULL DEFAULT '0',
  `m_myfavoritenums` mediumint(6) NOT NULL DEFAULT '0',
  `m_letternums` tinyint(2) NOT NULL DEFAULT '0',
  `m_hirenums` mediumint(6) NOT NULL DEFAULT '0',
  `m_interviewnums` mediumint(6) NOT NULL DEFAULT '0',
  `m_expertnums` mediumint(6) NOT NULL DEFAULT '0',
  `m_comm` tinyint(1) NOT NULL DEFAULT '0',
  `m_commstart` date NOT NULL DEFAULT '0000-00-00',
  `m_commend` date NOT NULL DEFAULT '0000-00-00',
  `m_logo` varchar(50) NOT NULL,
  `m_logostatus` tinyint(1) NOT NULL DEFAULT '0',
  `m_logoflag` tinyint(1) NOT NULL DEFAULT '0',
  `m_logocomm` tinyint(1) NOT NULL DEFAULT '0',
  `m_logostartdate` date NOT NULL DEFAULT '0000-00-00',
  `m_logoenddate` date NOT NULL DEFAULT '0000-00-00',
  `m_licence` varchar(100) NOT NULL,
  `m_trade` varchar(50) NOT NULL,
  `m_tradeid` smallint(5) NOT NULL,
  `m_ecoclass` varchar(20) NOT NULL,
  `m_fund` mediumint(6) NOT NULL DEFAULT '0',
  `m_workers` varchar(10) NOT NULL,
  `m_founddate` date NOT NULL DEFAULT '0000-00-00',
  `m_introduce` mediumtext NOT NULL,
  `m_teachers` mediumtext NOT NULL,
  `m_achievement` mediumtext NOT NULL,
  `m_hits` int(10) NOT NULL DEFAULT '0',
  `m_template` varchar(20) NOT NULL,
  `m_activedate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `m_mobile` varchar(20) NOT NULL,
  `m_mobileshowflag` tinyint(1) NOT NULL DEFAULT '0',
  `m_smsnum` smallint(4) NOT NULL DEFAULT '0',
  `m_hirenum` smallint(4) NOT NULL DEFAULT '0',
  `m_myinterviewnum` smallint(4) NOT NULL DEFAULT '0',
  `m_expertnum` smallint(4) NOT NULL DEFAULT '0',
  `m_recyclenums` mediumint(6) NOT NULL DEFAULT '0',
  `m_recyclenum` smallint(4) NOT NULL DEFAULT '0',
  `m_contactnums` mediumint(6) NOT NULL DEFAULT '0',
  `m_contactnum` smallint(4) NOT NULL DEFAULT '0',
  `m_smsnums` mediumint(6) NOT NULL DEFAULT '0',
  `m_mysendnum` smallint(4) NOT NULL DEFAULT '0',
  `m_myfavoritenum` smallint(4) NOT NULL DEFAULT '0',
  `m_ishire` smallint(4) NOT NULL DEFAULT '0',
  `m_operator` varchar(20) NOT NULL,
  `m_map` varchar(50) NOT NULL,
  `m_confirm` tinyint(1) NOT NULL DEFAULT '0',
  
  PRIMARY KEY (`m_id`),
  KEY `m_regdate` (`m_regdate`),
  KEY `m_enddate` (`m_enddate`),
  KEY `m_logindate` (`m_logindate`),
  KEY `m_login` (`m_login`),
  KEY `m_activedate` (`m_activedate`),
  KEY `m_startdate` (`m_startdate`),
  KEY `m_ishire` (`m_ishire`),
  KEY `m_logoflag` (`m_logoflag`),
  KEY `m_logostatus` (`m_logostatus`)
) ENGINE=MyISAM  DEFAULT 

CHARSET=gbk AUTO_INCREMENT=122851 ;


这个是有数据的表
 create  table jobinfo(
  id int(11)              
  jname varchar(50)                
  jdesc text                 
  jexp varchar(20)            
  knw varchar(20)               
  mgexp varchar(30)               
  jattr varchar(10)               
  num varchar(10)               
  paymt varchar(10)             
  conn text            
  waddr varchar(100)             
  pdate varchar(20)            
  jtype varchar(20)            
  cid varchar(10)             
  url varchar(50)              
  compname varchar(50)               
  companyaddr varchar(1000)              
  mailbox varchar(1000)             
  cmsg varchar(1000)            
  linkman varchar(20)               
)

我去,这数据表,这么多个字段,你是把所有字段都放一个表了么?

只把下面的表的数据插入第一张表里

你没有给出把哪个字段放到哪个字段中去

例如 jobinfo表中的companyaddr 放入job_hr表中的 m_address 

例如 jobinfo表中的companyaddr 放入job_hr表中的 m_address
你已经完成大半了
例如
insert into job_hr (m_address) values select companyaddr from jobinfo

它们在两个不的数据库啊  有没有代码啊 这样一个个的添加很麻烦的  谢谢啦

本帖最后由 xuzuning 于 2011-08-26 06:50:08 编辑

insert into job_hr (库1.m_address) values select companyaddr from 库2.jobinfo

当然不能一个一个添加,就是加了,也是不对

insert into 库1.job_hr (字段列表) values select 对应的字段列表 from 库2.jobinfo

根据主健,联表更新

insert into job_hr (库1.m_address) values select companyaddr from 库2.jobinfo

当然不能一个一个添加,就是加了,也是不对

insert into 库1.job_hr (字段列表) values select 对应的字段列表 from 库2.jobinfo
 11# 真高手~ 那如果数据类型不一样 比如两个都是char呢 也能吗? 

我已经搞完了 谢谢各位高手帮忙

楼主,你是怎么搞定的?

怎么搞定的?现在急需,如果表中的数据很多,比如几百万条,怎么移

老老实实写程序导吧

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn