ricardojaguar
New Member
Can I put a MAX value for the database table primary key, either via JPA or at the database level? If it is not possible, then I was thinking about [*]Create a random \[code\]key\[/code\] between 0-9999999999 (9999999999 is my MAX)[*]Do a SELECT on the database with the newly create \[code\]key\[/code\], if return object is \[code\]null\[/code\], then INSERT, if not repeat go back to step 1So if I do the above, two questions. Please keep in mind that the environment is high concurrent:Q1: Does the overhead of check with SELECT, if not there, INSERT significant? What I really mean is: is this process normal, since usually I let the DB create a unique PK for me?Q2: If Q1 does not create significant performance degradation, can I run into concurrent issue? For example, if P1 with Id1 check the table, Id1 is not there, it ready to insert, P2 sneak in insert Id1 before P1 could. So when P1 insert Id1, it fails. I dont want the process to fail here, I want it to go back up the loop, find a new id, repeat the process. How do I do that?My environment is SQL and MYSQL db. I use JPA with Eclipselink implementationNOTE: Some people question my decision to implement it this way, the answer is exact what \[code\]TravisJ\[/code\] suggest below. I have a very high concurrent environment. When a process kick off, I need to create a request to another process, passing to that process a unique 10 character long id. Since the environment is high current, I want to leverage the unique, not null feature of PK. The request contain lot of information in it, so I create a\[code\]Request\[/code\] table, with the request Id as my PK. I know since all DB index their PK, query out the PK is fast. If there are better way, please let me know.