This might be a weird query but its related to deleting specific details in database.
Bascially I had built a database using a set of files
seq1 of 300 mb
seq2 of 200 mb
seq3 of 350 mb
seq4 of 300 mb
and after building the database i realized that i didn't need the whole data. i am required to not only delete content of database related to seq2 to seq4 but also delete content related to last 200 bytes in seq1
Basically i am required to retain only first 100 mb of data in seq1.
without going through the whole procedure of rebuilding the db could i delete contents of database corresponding to these requirements.
i know its a little unusal but could some one give a direction.
What is the database(i.e.oracle, db2, etc.)?
Which tables in the database do you want to remove rows for?
What is the structure(i.e. columns, indexes) of these tables?
Which rows do you want to remove?
I thought about it and realized that i could delete all unwanted entries in the mysql databaseb by using a select and delete command
i want to retain only those seq1 entries whose stop_id is less than or equal to 1000000( ie from 0 to 1000000 )
I want to delete all other sequences from seq2 to 13 and also other entries having name VCC and QAC
There most likely is a way to find out what is in the first 100 mb of the file, but that is not how databases work. One reason database systems were invented is that you do not have to bother with this kind of things, so the documentation for this is hard to find and understand.
I could tell you how to do this for Oracle systems if I'd know the exact version, but there would be a LOT research you'd have to do and I'm not sure if recreating the database wouldn't be less straining on your resources.
A quick google search revealed that shrinking mysql datafiles is not a built in feature for that database system, but there are tools that can do it. The native approach would be to add a datafile of the desired size, move all data there and drop the old ones (and I guess that is what those tools do).
Edit: Using tools like vi or awk on database files usually is a bad idea and will most likely corrupt your database.
Seriously - I'd propose you learn some basics on databases.
Deleting anything from the outside will corrupt the database rendering it totally unusable.
Deleting sequences does not really save space - they are just metadata worth a few bytes, counters that have a start and end value, and e.g. a step width, all recorded in the DB management structures.
Retaining the "first" 100 MB (= deleting 200 MB above) is pointless as consistent data are spread all over tablespaces/files.
Do as cero proposed - create a new datafile/tablespace, move all relevant data there, and then drop the old structures. Or, seriously consider recreating.