Yevgeny Simkin
Yevgeny Simkin

Reputation: 28349

restoring data in a specific table

One of our tables has been maligned /*edit as per commented request On doing an update to a specific column I accidentally neglected to specify for which row I wish to make this change and set the offending value for every row in the table.
*/end edit

but we have a very recent backup, however not so recent that other tables won't lose data if we do a total database restore.

I'm wondering what the procedure is (assuming there is one) of copying the contents of a given table from one database to another.

The largest problem is that I can't just drop the offending table and replace it as it has rows that are indexed by id into other tables. This won't be a problem if we just take the values from the identical rows in the back-up and bring them over (since the row ids wouldn't change).

Upvotes: 0

Views: 57

Answers (2)

rjdown
rjdown

Reputation: 9227

It's unclear what exactly has gone wrong with your data. But I'm thinking maybe just a column or two has got messed up. As you said, you just want to copy over the data from the old table, based on the id column.

Assuming you've imported the backup database as "olddb" and the current one is named "newdb":

UPDATE newdb.yourtable newtable, olddb.yourtable oldtable
SET newtable.somecolumn = oldtable.somecolumn
WHERE newtable.id = oldtable.id

Upvotes: 1

Tracysss
Tracysss

Reputation: 594

Use mysqldatadump for that particular table, and then feed that into the other database.

You can edit the dump file prior to redaing it in to the target table.

See: https://dba.stackexchange.com/questions/9306/how-do-you-mysqldump-specific-tables

Upvotes: 0

Related Questions