Hi Richard, Ok... I do already have a Unique index on the column but this process is something that I cannot echo out the error code to the user. The code is generated on the fly when an order an is placed so you can see... I can't echo out the error to the customer. Can I do an if statement IF an error is returned to try generatre another randon code and keep going until one is available? I can do this all intenrally without the customer knowing/seeing anything? Hope I am making some sense. Not trying to confuse the issue. Thanks. Appreciate your thoughts. Aaron > On Mon, October 10, 2005 3:24 pm, Dan McCullough wrote: >> create a function to check if the rndnumber=couponcode row count = 0 >> if not then redo rndnumber if it does = 0 then insert rndnumber > > Noooooooooooooooooooooooooooo! > > You are creating a RACE CONDITION in which ONE user might generate a > 'valid' code, and ANOTHER user might generate a 'valid' code AT THE > SAME TIME, and then they BOTH get the same coupon code. > > The probability of this is very very very low, but still NOT zero. > > And it's the kind of thing that won't show up in testing, but sure as > God made little green apples, it WILL happen at the worst possible > time after you "go live" > > The database engine has a *TON* of code in it to avoid this kind of > Bad Thing happening. > > Use it. > > create a UNIQUE INDEX on the column that needs to be unique. > > Trap the INSERT error. > > -- > Like Music? > http://l-i-e.com/artists.htm > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php