From: | Chris Angelico <rosuav(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Best way to create unique primary keys across schemas? |
Date: | 2012-01-23 13:30:15 |
Message-ID: | CAPTjJmpPO+_UoJd0bh+4f3dkZ-9agjb-J2rgS_VSbYiAPqp16A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, Jan 23, 2012 at 11:19 AM, panam <panam(at)gmx(dot)net> wrote:
> Hi,
>
> If I'd like to have primary keys generated ("numeric" style, no UUIDs) that
> are unique across schemas is the best option to allocate a fixed sequence
> range (min,max) to the sequences of all schemas?
You can "share" a sequence object between several tables. This can
happen somewhat unexpectedly, as I found out to my surprise a while
ago:
CREATE TABLE tbl1 (ID serial primary key,foo varchar,bar varchar);
INSERT INTO tbl1 (foo,bar) VALUES ('asdf','qwer');
CREATE TABLE tbl2 LIKE tbl1 INCLUDING ALL;
INSERT INTO tbl2 (foo,bar) VALUES ('hello','world');
Both tables will be drawing IDs from the same sequence object, because
"create table like" copies the default value, not the "serial"
shorthand. (It makes perfect sense, it just surprised me that the IDs
were looking a little odd.)
Chris Angelico
From | Date | Subject | |
---|---|---|---|
Next Message | Hiroshi Saito | 2012-01-23 13:43:18 | Re: PGbouncer for Windows 2008 |
Previous Message | Douglas Eric | 2012-01-23 12:17:43 | [RFE] auto ORDER BY for SELECT |