Reputation: 33
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
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
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
Reputation: 308763
Find a free ETL tool of some kind:
http://searchdatamanagement.techtarget.com/answer/The-ETL-process-and-MySQL
Upvotes: 0
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