Re: CREATE TABLE LIKE, regarding constraints - Mailing list pgsql-docs

From
Subject Re: CREATE TABLE LIKE, regarding constraints
Date
Msg-id F3CBFBA88397EA498B22A05FFA9EC49D60A412F0@MX22A.corp.emc.com
Whole thread Raw
In response to Re: CREATE TABLE LIKE, regarding constraints  (Magnus Hagander <magnus@hagander.net>)
Responses Re: CREATE TABLE LIKE, regarding constraints  (Magnus Hagander <magnus@hagander.net>)
List pgsql-docs
-----Original Message-----
From: Magnus Hagander [mailto:magnus@hagander.net]
Sent: Saturday, December 31, 2011 7:42 AM
To: Sahagian, David
Cc: pgsql-docs@postgresql.org
Subject: Re: [DOCS] CREATE TABLE LIKE, regarding constraints

On Fri, Dec 30, 2011 at 22:27,  <david.sahagian@emc.com> wrote:
> www.postgresql.org/docs/9.0/static/sql-createtable.html
> == == == == ==
> LIKE parent_table [ like_option ... ]
> . . .
> Not-null constraints are always copied to the new table.
> CHECK constraints will only be copied if INCLUDING CONSTRAINTS is specified; other types of constraints will never be
copied.
> . . .
> == == == == ==
>
> But I do see PK and UNIQUE constraints
>  CONSTRAINT blah_pkey PRIMARY KEY (id),
>  CONSTRAINT blah_host_id_key UNIQUE (host_id)
> in the def of the new table.

Can you provide the commands you ran to make that happen? It doesn't
happen for me in a trivial test.

> Also, why is there no discussion of what "EXCLUDING CONSTRAINTS" will result in ?

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Magnus,
I did some more "testing" of CREATE TABLE LIKE,
and now see that [INCLUDING INDEXES] also can cause PRIMARY KEY and UNIQUE constraints to become part of the new table.

++++++++++++++
 CREATE TABLE yesConstr_noIndex_tbl (
   like mytbl
   INCLUDING DEFAULTS  INCLUDING CONSTRAINTS                     INCLUDING STORAGE
 );
++++++++++++++
  no PRIMARY KEY
  no UNIQUE
  no indexes

++++++++++++++
 CREATE TABLE  noConstr_yesIndex_tbl (
   like mytbl
   INCLUDING DEFAULTS                        INCLUDING INDEXES   INCLUDING STORAGE
 );
++++++++++++++
  NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "mytbl_pkey"           for table "mytbl"
  NOTICE:  CREATE TABLE / UNIQUE      will create implicit index "mytbl_host_id_key"    for table "mytbl"

  CONSTRAINT mytbl_pkey PRIMARY KEY (id),
  CONSTRAINT mytbl_host_id_key UNIQUE (host_id)
  and 2 unrelated indexes: (a_diff_col) (yet_a_diff_col)


I have no problem with this behavior,
but the doc probably deserves some clarification on the "relationship" between
[INCLUDING CONSTRAINTS] and [INCLUDING INDEXES].

Thanks,
-dvs-




pgsql-docs by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: CREATE TABLE LIKE, regarding constraints
Next
From: Magnus Hagander
Date:
Subject: Re: CREATE TABLE LIKE, regarding constraints