将MYSQL某一数据库中的多条记录批量插入到另一MYSQL数据库时,记录不存在则插入,存在则更新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将MYSQL某一数据库中的多条记录批量插入到另一MYSQL数据库时,记录不存在则插入,存在则更新相关的知识,希望对你有一定的参考价值。
例如:需要将A库中的1000条记录批量插入到B库中或更新B库中已存在的数据,具体需求如下:
1、数据库A和库B均有表T1、T2、T3三张结构一样的表,但A库和B库各表的记录字段值是不完全一样的,这三张表包含的部分字段分别是:
T1:ID,TYPEID,SENDATA,MID,CHANNEL
T2:ID,TYPEID,NAME,SENDATA,MID,CHANNEL
T3:ID,TYPEID,RENEW,ARCLIST,YEARS
三张表中T2表是主表,T1和T3表是附表,三张表的数据通过ID相互关联,各库每条记录的数据分别存放在T2和T3表中,也就是说表T2和T3的数据整合在一起才能得到一条记录的完整数据,而T1主要是生成记录ID的表,即向T1中插入除ID以外的其他字段值时,该表将会递增自动生成新的ID;
2、将A库中字段NAME和YEARS相同的记录插入到B库中,如B库中不存在相同的记录则批量插入新的记录,如存在则不插入,而批理更新B库T3表中相同记录的RENEW字段值;(注:A库和B库的各记录ID值是不一定相同的,即使两库中存在相同的记录,该记录的ID值也不一定相同,因此,须首先向B库中的T1表插入数据,让T1表生成新的ID值,然后再分别向B库中的T2和T3表插入数据,而T2和T3表的ID值须从B库中的T1表获得,否则会出现ID主键值重复的错误)
烦请按上述举例的内容写出SQL语句,该SQL语句须能在phpMyAdmin中运行,谢谢!!
一楼回复的朋友,你写的语句,看不明白呀,感觉不是SQL语句(我是初学者,也许说错了),能否进行详细的说明。
2. Delete hsqldb-jdbc-state-service.xml and hsqldb-jdbc2-service.xml in
deploy/jms
3. Copy doc/examples/jms/ mysql-jdbc2-service.xml to deploy/jms
MYSQL 如何把查询到的结果插入到另一个表中?
语句:INSERT INTO 目标表 SELECT * FROM 来源表 ;
也可以先查询出结果保存下来,再把保存的值放到insert语句。
MySQL 是一个关系型数据库,目前属于 Oracle
旗下公司。MySQL是开放源码软件,因此可以大大降低总体拥有成本。支持多线程,充分利用CPU资源。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。支持大型的数据库。可以处理拥有上千万条记录的大型数据库
INSERT INTO table1(col1,col2,col3) SELECT * FROM(SELECT col1,col2,col3 FROM table2)
删除
DELETE FROM table1WHERE col1 in (SELECT col1 FROM table2)
以上是关于将MYSQL某一数据库中的多条记录批量插入到另一MYSQL数据库时,记录不存在则插入,存在则更新的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE数据库 存储过程 中 从几张级联表中查询 出结果集,循环添加到另一张表的某一字段