From: | David Johnston <polobo(at)yahoo(dot)com> |
---|---|
To: | pgsql-docs(at)postgresql(dot)org |
Subject: | Create Table ... Like Including Default & Sequences |
Date: | 2013-06-14 02:20:05 |
Message-ID: | 1371176405220-5759108.post@n5.nabble.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
In the documentation for "Create Table" the following paragraph appears under
the definition for LIKE:
"Default expressions for the copied column definitions will only be copied
if INCLUDING DEFAULTS is specified. The default behavior is to exclude
default expressions, resulting in the copied columns in the new table having
null defaults."
I would like to suggest adding a sentence between the first and second:
Defaults created via the "serial" and "bigserial" construct - or that use
"nextval(...)" generally - are copied as-is resulting in both tables sharing
the same underlying sequence.
Note that this is technically contrary to the statement:
Unlike INHERITS, the new table and original table are completely decoupled
after creation is complete.
I'm working in 9.0 and noticed this incidentally when a FK constraint failed
but the expected ID was somewhere in the 10s while the actual was somewhere
upward of 80,000 which clued me into the fact that the original sequence was
being used.
As an aside it may be worth noting (or linking to) a quick way to change the
default on the new table if this is done in error and a correction is
desired. For my purposes I'll likely just leave it alone.
David J.
--
View this message in context: http://postgresql.1045698.n5.nabble.com/Create-Table-Like-Including-Default-Sequences-tp5759108.html
Sent from the PostgreSQL - docs mailing list archive at Nabble.com.
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2013-06-14 17:20:30 | parallel pg_restore and supported input format |
Previous Message | Alvaro Herrera | 2013-06-13 15:55:30 | Re: pdf does not build anymore |