Re: UUID column as pimrary key? - Mailing list pgsql-general

From Szymon Guz
Subject Re: UUID column as pimrary key?
Date
Msg-id AANLkTim2UJKr1foZBP5a=C5DgL-nOA6YigDNDNoZqznd@mail.gmail.com
Whole thread Raw
In response to Re: UUID column as pimrary key?  (Radosław Smogura <rsmogura@softperience.eu>)
List pgsql-general


On 5 January 2011 15:28, Radosław Smogura <rsmogura@softperience.eu> wrote:
On Wed, 05 Jan 2011 21:50:11 +1100, Craig Ringer <craig@postnewspapers.com.au> wrote:
On 01/05/2011 07:31 PM, Radosław Smogura wrote:

* you have your id, before executing query, (in contrast to all this
autoincrement) so you may put it in dependant rows

Do you mean that with a UUID, you don't need to talk to the database
at all, you can generate an ID with no interaction with / involvement
with the database at all? Because other than that, there's not much
difference in how you normally work with them.


With a sequence, you might:

CREATE SEQUENCE x_id_seq;
CREATE TABLE x (
   id integer PRIMIARY KEY DEFAULT nextval('x_id_seq'),
   y integer
);
INSERT INTO x(y) VALUES (1);

I mean situation, when You create e.g. in one transaction, book and chapters, in some way You need retrieve book's id, by returning clause of insert, or by obtaining id form sequence.
It's simpler to write:
book_id = new uuid();
insert into book values(book_id,....);
insert into chapters values(new uuid(), book_id, ...);
isn't it?



For me it is simpler just to write this:

bookid = insert into books(...) values(...) returning book_id;
insert into chapters(book_id, ...) values( bookid, ...);

but it's a matter of taste, I think.

regards
Szymon

pgsql-general by date:

Previous
From: Radosław Smogura
Date:
Subject: Re: UUID column as pimrary key?
Next
From: Scott Ribe
Date:
Subject: Re: UUID column as pimrary key?