Ahsan
Ahsan

Reputation: 33

Copying data from one table to another table. Databases are different and table structure is different

I am looking for a solutions for my MySQL data copying related problem. I have a table TAB1 in a database DB1 that contains some data. Now I want some of these data rows to be migrated to another table TAB2 to some another database DB2.

What would be an ideal way to write such a SQL script for MySQL server. I cannot write java/php program etc because I don't have access to the code base.

Any example links will be helpful. I know this can be done in Oracle via DBLink but how to do it in MySQL.

Thanks

Upvotes: 3

Views: 8416

Answers (4)

Vineesh K S
Vineesh K S

Reputation: 1964

This will copy all the data from one table to another (MySQL)

INSERT INTO  `databse_name`.`tablename_copy` 
SELECT * 
FROM  `databse_name`.`tablename` ;

if you set primary key this will create some problem. Please check the primary key duplication error

Upvotes: 0

Nicola Cossu
Nicola Cossu

Reputation: 56357

insert into db2.table2 (field1,field2,..,fieldN)
select field1,field2,..,fieldN from db1.table1

EDIT. If you need to do an update between two different databases this is the right syntax:

update 
db2.table2 as t2,
db1.table1 as t1
set 
t2.field1 = t1.field1,
t2.field2 = t1.field2,
t2.field3 = t1.field3
where t1.id = t2.id

Upvotes: 6

duffymo
duffymo

Reputation: 308763

Find a free ETL tool of some kind:

http://searchdatamanagement.techtarget.com/answer/The-ETL-process-and-MySQL

Upvotes: 0

Mchl
Mchl

Reputation: 62387

If both databases are on the same server then the easiest way is to use INSERT INTO... SELECT query

INSERT INTO
   database2.table2 (c1, c2, c3)
SELECT
   c2, c4, MD5(c3)  --you can choose only these columns that are needed as well as use functions to convert data to required format if needed
FROM
   database1.table1

Upvotes: 3

Related Questions