Re: Question Regarding DELETE FROM ONLY - Mailing list pgsql-general

From Terry Lee Tucker
Subject Re: Question Regarding DELETE FROM ONLY
Date
Msg-id 200605291020.04290.terry@esc1.com
Whole thread Raw
In response to Re: Question Regarding DELETE FROM ONLY  (Michael Fuhr <mike@fuhr.org>)
List pgsql-general
On Monday 29 May 2006 09:43 am, Michael Fuhr <mike@fuhr.org> thus
communicated:
--> On Mon, May 29, 2006 at 08:40:43AM -0400, Terry Lee Tucker wrote:
--> > INSERT INTO ctable (code, name) VALUES ('code_one', 'Code One');
--> > rnd=# SELECT * FROM ptable;
--> >    code
--> > ----------
--> >  code_one
--> > (1 row)
--> >
--> > rnd=# SELECT * FROM ctable;
--> >         code   |   name
--> > ---------------+----------
--> >  code_one | Code One
--> > (1 row)
-->
--> These aren't two distinct records -- they're the same record, the
--> one in ctable, as the following queries show:
-->
--> SELECT tableoid::regclass, * FROM ptable;
--> SELECT tableoid::regclass, * FROM ctable;
-->
--> You can use FROM ONLY to see that the record doesn't actually exist
--> in ptable:
-->
--> SELECT tableoid::regclass, * FROM ONLY ptable;
-->
--> > DELETE FROM ONLY ctable WHERE code ~* 'code_one';
--> >
--> > rnd=# SELECT * FROM ptable;
--> >  code
--> > ------
--> > (0 rows)
--> >
--> > The record in ctable AND the record in ptable are both deleted even
 though I --> > specified "ONLY ctable" in the delete phrase. Why is this
 happening? -->
--> Because there was only one record, the one in ctable, and you deleted
--> it.  When you inserted the record into ctable that's the only place
--> it went.  The query against ptable showed records in the parent
--> table (none) and records in its child tables (one).  After you
--> delete the record from the child the subsequent query against the
--> parent returns zero rows because both tables are now empty (the
--> parent was always empty and the child had its one record deleted).
-->
--> --
--> Michael Fuhr
-->

Thanks for the response Michael. I'm beginning to see the light.


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: The server's LC_CTYPE locale
Next
From: "Qingqing Zhou"
Date:
Subject: Re: Restoring databases from a different installment on Windows