| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | salah jubeh <s_jubeh(at)yahoo(dot)com> |
| Cc: | pgsql <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Convert table to view 9.1 |
| Date: | 2013-12-11 15:50:22 |
| Message-ID: | 16374.1386777022@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
salah jubeh <s_jubeh(at)yahoo(dot)com> writes:
> create table a (id int primary key);
> create table b (id int primary key, a_id int references a (id));
> insert into a values (1);
> insert into b values (1,1);
> create table c AS SELECT * FROM b;
> TRUNCATE b;
> ALTER TABLE b DROP CONSTRAINT b_a_id_fkey;
> ALTER TABLE b DROP CONSTRAINT b_pkey;
> ALTER TABLE b ALTER COLUMN id DROP NOT NULL;
>
> CREATE RULE "_RETURN" AS ON SELECT TO b DO INSTEAD SELECT * FROM C;
Patient: Doctor, it hurts when I do this.
Doctor: So, don't do that.
Why would you think this is a good thing to do? Why not just rename
table b to c, and then create the view as b?
(For context, it's not even considered a supported operation to
manually create _RETURN rules like that. Any arbitrary restrictions
we might put on transforming tables to views are perfectly legitimate
IMHO, because the only case we care about supporting is pg_dump's
usage of this hack to break circular dependencies between views.
And in that case, the "table" never had any table-only features.)
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Sameer Kumar | 2013-12-11 15:55:37 | Re: Trigger Firing Order |
| Previous Message | Kevin Grittner | 2013-12-11 15:48:20 | Re: Trigger Firing Order |