This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
Shape the future of IBM!
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Search existing ideas
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updateson them if they matter to you. If you can't find what you are looking for,
Post your ideas
Post an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
Specific links you will want to bookmark for future use
A UUID is a Universally Unique Identifier, meaning that these identifiers are unique over your whole DB, even better unique" across space and time". UUID's are stored in 128bit format and follow a standarized format (rfc4122) This makes the type a great alternative to the ID as identity column, I would dare say a superior alternative.
Advantages of the UUID:
This is possible because the mac-address of the system is integrated in the UUID.
You would be able to use the primary keys generated by a third party. No need for mapping between ID's! This makes data integrations effortless!
Generated randomly, impossible to guess next/previous value
This is very important in the context of public API's. Most API protocols expose their unique keys in the url.
SQL adapters in open source languages will have to check if the trigger exists before every operation.
On insert we have to send some dummydata to place in the table before the trigger is executed. For an identity column it becomes a daunting task to provide unique dummydata.
Alternative with SQL Sequence Object
CREATE OR REPLACE TABLE USERS (
uuid integer not null,
firstname varchar(50) not null,
lastname varchar(50) not null,
primary key (uuid)
CREATE OR REPLACE SEQUENCE unique_identifiers AS INTEGER
START WITH 1
INCREMENT BY 1
-- Does not work, because the uuid is not generated insert into users (firstname, lastname)
values ('Mario', 'Aquino'), ('Dimi', 'VLH');
insert into users (uuid, firstname, lastname)
values (next value for unique_identifiers, 'Mario', 'Aquino'), (next value for unique_identifiers,'Dimi', 'VLH');
External keys are easy to guess (still just incrementing numbers)
SQL adapters in Open Source languages will have to check if this sequence exists before every insert.
What about other databases?
Postgresql has great support for this column type. MySQL and SQLite stumble behind, but their connector-packages provide support from within the OpenSource language. I'm not a fan of this approach since you have to translate the logic to every OpenSource language...
I know this idea has been posted in the past. But I think this should be reconsidered.
UUID's are very useful, especially in collaboration with other applications and third party's. The workarounds do not suffice and are too much repetitive work...
Do not place IBM confidential, company confidential, or personal information into any field.