We have a database table, with a field ( int (4) ) , we'll call it
 transid.
 The field is being populated by an unknown random formula in a third party
 program.
 I have another program that i am writing that needs to insert records into
 this table.
 This field, transid must be unique.
 I started in MY program with a function that said "select max(transid) from
 table" , newid=max(transid) + 1, insert into table (newid,blah blah blah)
 Problem being that because the OTHER program is using random numbers, it
 eventually put in a value that is the max length of an int(4) field.
 SO - i changed my syntax to be newid=(select max(transid) from table where
 transid<1000000)+1 - works fine for a while until the other program came
 along and inserted a value of 9999996 - so then, only my next four
 transactions worked until i hit 9999999 and then the number kept repeating,
 no longer unique, insert fails.
 SO my question - is there a sql function that would say:
 "Find me a number that is not already used in the field transid in table" '
 Im trying to figure with EXISTS, NOT EXISTS, etc, but i cant make anything
 work.
 Appreciate any assistance !
 Thanks,
 M.Coz wrote:
> SO my question - is there a sql function that would say:
> "Find me a number that is not already used in the field transid in
> table" ' Im trying to figure with EXISTS, NOT EXISTS, etc, but i
> cant make anything work.
See this thread
SQL Problem: How to find UNUSED numbers
http://groups.google.pl/groups?hl=pl&lr=&ie=UTF-8&oe=UTF-8&th=a3eb815a529ae1c5&rnum=1
sincerely,
--
Sebastian K. Zaklada
Skilled Software
http://www.skilledsoftware.com
This posting is provided "AS IS" with no warranties, and confers no rights.
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment