Oracle Generate Random Primary Key

Watch out for sequential Oracle GUIDs! (the GUID generator offered by Oracle) was returning sequentially-incremented values, rather than pseudo-random combinations of characters. Never, please never use random Guids as primary key for pretty large database. SELECT/UPDATE/DELETE will be OK, but INSERT will make DBMS to rebuild index. The primary keys typically are numeric because Oracle typically processes numbers faster than any other data types. It is considered a best practice have a primary key in every table though it is not mandatory in Oracle. To create a primary key in a table, you use the PRIMARY KEY constraint. Oracle PRIMARY KEY constraint examples. Hi Tom,I would like to know whether Oracle can generate Random Numbers and store in the database.My specific requirement is I would like to have a table having a field which holds randomly generated yet unique numbers.Can this be done in Oracle? /php-artisan-key-generate-anew-key.html. Hello Tom, I have a question on using GUIDs as primary keys. Our application is being developed on 11gR2 with a 3-node RAC. The development team has introduced a new column to almost all of the tables which is technically a UUID generated by the application code. All the tables are going to have a primary key column say (colpk) and a tenantid column. All though colpk is primary key but i want to create a composite primary of colpk and tenantid as almost of select on all table will have at least one where condn like 'select. Key generator adobe audition cs6. from mytable where colpk = somevalue and tenentid = othervalue'.


Posted by: Red R
Date: June 07, 2007 09:22PM

I am working on a regular database needing unique primary keys. I don't want to use the usual AUTO_INCREMENT property of MySQL and plans to generate random primary keys using PHP and use it in inserting the data row to MySQL. So my normal code would look like this:
1 do {
2 $random = generate_random_primary_key();
3 mysql_query(check if $random exists in database);
4 if not { insert data row to MySQL, quit loop } // else continue with loop
5 } while $random is in database
However, I have a couple of concerns:
1. Wouldn't this be a little slow and database-intensive, especially when the database already contains a lot of entries as I'll be checking the primary key's existence every time I need to insert an entry? And worse, it'll be inside a loop that continues until a non-existing primary key is found (imagine a 'nearly full' database).
2. I'm concerned about multiple users doing inserts at the same time. How can I be sure that there won't be another user inserting another entry using the same 'random' primary key in between lines 3 and 4?
Any comments would be very much be welcomed!

Random
Options:Reply•Quote

Oracle Random Number Example

Written By

Sorry, you can't reply to this topic. It has been closed.

Oracle Generate Random Primary Key 2017

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.