On Thu, Jun 13, 2013 at 07:20:05PM -0700, David Johnston wrote: > 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.
Oh, that is something I had not considered. I have applied the attached doc patch for 9.4. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml new file mode 100644 index a422edd..e0b8a4e *** a/doc/src/sgml/ref/create_table.sgml --- b/doc/src/sgml/ref/create_table.sgml *************** CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY *** 329,335 **** </para> <para> Default expressions for the copied column definitions will only be ! copied if <literal>INCLUDING DEFAULTS</literal> is specified. The default behavior is to exclude default expressions, resulting in the copied columns in the new table having null defaults. </para> --- 329,338 ---- </para> <para> Default expressions for the copied column definitions will only be ! copied if <literal>INCLUDING DEFAULTS</literal> is specified. ! Defaults that call database-modification functions, like ! <function>nextval</>, create a linkage between the original and ! new tables. The default behavior is to exclude default expressions, resulting in the copied columns in the new table having null defaults. </para>
-- Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-docs