Re: CREATE TABLE LIKE, regarding constraints

From: <david(dot)sahagian(at)emc(dot)com>
To: <magnus(at)hagander(dot)net>
Cc: <pgsql-docs(at)postgresql(dot)org>
Subject: Re: CREATE TABLE LIKE, regarding constraints
Date: 2012-01-02 14:32:39
Message-ID: F3CBFBA88397EA498B22A05FFA9EC49D60A412F0@MX22A.corp.emc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

-----Original Message-----
From: Magnus Hagander [mailto:magnus(at)hagander(dot)net]
Sent: Saturday, December 31, 2011 7:42 AM
To: Sahagian, David
Cc: pgsql-docs(at)postgresql(dot)org
Subject: Re: [DOCS] CREATE TABLE LIKE, regarding constraints

On Fri, Dec 30, 2011 at 22:27, <david(dot)sahagian(at)emc(dot)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-

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Magnus Hagander 2012-01-02 19:31:43 Re: CREATE TABLE LIKE, regarding constraints
Previous Message Magnus Hagander 2011-12-31 12:42:12 Re: CREATE TABLE LIKE, regarding constraints