0

If my table requires alphanumeric random string as its primary key, how can I achieve this?

If we can only achieve this in the backend system instead of database system, how can we guarantee that the random string is unique in the table?

Would the algorithm look like this?

  1. generate a random string
  2. query the database and check if the string already exists
  3. if not exists, insert a row into the table
  4. if exists, re-generate a random string, and check again until the string is unique

I am primarily asking how to generate random strings in the DATABASE SYSTEM, not random strings in general.

3
  • 1
    Have you checked out mysql's uuid() function? Commented Nov 22, 2015 at 2:46
  • 3
    see stackoverflow.com/questions/1846202/… OR stackoverflow.com/questions/48124/… OR stackoverflow.com/questions/2799495/… OR ... Commented Nov 22, 2015 at 2:47
  • Random values can by definition collide. The bigger the range of characters, and the longer the string, the less likely you are to get collisions, but you would still have to check that it has not been used before, if you want to be 100% sure. A much better solution would be to use an auto-incremented value, which MySQL already gives you out of the box. It would render your problem moot. Commented Nov 22, 2015 at 3:00

1 Answer 1

2

Take a look at uniqid() http://php.net/manual/en/function.uniqid.php

"Gets a prefixed unique identifier based on the current time in microseconds."

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.