andieje
asked on
backing up data that matches certain criteria
Hi
Using mysql backup tools, is it possible to do something like a mysqldump for rows in a table that match certain criteria.
For example, lets say I have a database that has table A with 100 records. Table A has a field called TestValue. 50 records have a value 10 in this field and the rest have a value 20 in this field.
This is what I want to do:
1) Create a mysql dump for the 50 records where TestValue = 20
2) Delete the records where TestValue = 20
3) At a later date, restore from the mysql dump the 50 records where TestValue = 20 so that Table A has 100 records in it again
Basically the reason I am thinking of this solution is that I have a database that contains a mixture of public and private data. When this data is 'inhouse' both the public and private data should be in the database. The database can be sent out into the public domain and the private data must be removed. The database may well be returned to us with extra data in it. The private data then needs to be restored when it is back inhouse.
My solution to this was a 'selective' mysql dump but I'm not a database person so there may be a better option. My idea may not even be possible
thanks a lot
Using mysql backup tools, is it possible to do something like a mysqldump for rows in a table that match certain criteria.
For example, lets say I have a database that has table A with 100 records. Table A has a field called TestValue. 50 records have a value 10 in this field and the rest have a value 20 in this field.
This is what I want to do:
1) Create a mysql dump for the 50 records where TestValue = 20
2) Delete the records where TestValue = 20
3) At a later date, restore from the mysql dump the 50 records where TestValue = 20 so that Table A has 100 records in it again
Basically the reason I am thinking of this solution is that I have a database that contains a mixture of public and private data. When this data is 'inhouse' both the public and private data should be in the database. The database can be sent out into the public domain and the private data must be removed. The database may well be returned to us with extra data in it. The private data then needs to be restored when it is back inhouse.
My solution to this was a 'selective' mysql dump but I'm not a database person so there may be a better option. My idea may not even be possible
thanks a lot
Have you considered creating a temporary table containing only the data you want to backup, then using the dump on the temporary table?
ASKER
i was hoping i could just back up parts of the relevant table without having to create a temporary table. Then i could reinstate the data back to the temporary table rather than having to reinstate the data into the temporary table and then move it from the temporary table to the original table.
It seemed simpler that way to me
It seemed simpler that way to me
ASKER
how about doing a 'select into' statement on the table rows that I want and then import these back in using a mysqlimport statement?
Any other solutions welcomed
Any other solutions welcomed
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
that drops the table and all the data in it though doesnt it?
i can use that with the no-create-db and no-create-info options i guess then?
i can use that with the no-create-db and no-create-info options i guess then?
yes, exactly
ASKER
thanks