actually this version_id is unique .
now the problem is delete_cascade is inefficient in my scenario ...

i have 4000 tables each table is something like score_ver1
score_ver2 . when i try to delete grp from this table . database will start looking at all these 4000 tables . actually based on record that is to be deleted . i can tell where child tables are present

so i am dynamically selecting these tables and deleteing coresponding records in them.

but as you said ... below select stmt in trigger might be causing mutation .
select version_id from grp where grp_id = ld.grp_id

how can i get rid of this?

can i use commit or use multiple procedure ?

your help will be much appreciated.