I’m stuck in a concurrency problem.
Is a typical problem where the user sends 2 o 3 transactions to persists some data that SHOULD NOT BE duplicated in the DB, in case of a duplicate record you should return an error.
This problem is easy when you can just add an index (unique) to a column where you store a hash.
But in this case, I have a huge table (probably millions of records) and I can’t just modify the table.
In fact, we have a column where we store a hash of the data that should not be duplicated but a unique index was not set .
I’m trying on my java code to check if exists just before the flush, still getting duplicates.
My possible solutions for this are:
- Create a trigger that checks if the hash that I’m trying to inserts already exists on the table.
- Create another table to store unique indexes for this table and add a foreign key to the main table.
- Sit on fetal position and cry