| From: | Bill Moran <wmoran(at)potentialtech(dot)com> |
|---|---|
| To: | Bruce Momjian <bruce(at)momjian(dot)us> |
| Cc: | Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Jean-Michel Pouré <jm(at)poure(dot)com>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: DELETE syntax on JOINS |
| Date: | 2009-08-24 16:29:00 |
| Message-ID: | 20090824122900.f70e59c2.wmoran@potentialtech.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
In response to Bruce Momjian <bruce(at)momjian(dot)us>:
> Alvaro Herrera wrote:
> > Bruce Momjian wrote:
> >
> > > > Ultimately, why not allow:
> > > >
> > > > DELETE h, tn
> > > > FROM history AS h
> > > > INNER JOIN term_node AS tn ON (h.nid = tn.nid)
> > > > INNER JOIN term_data AS td ON (td.tid = tn.tid)
> > > > WHERE h.uid = 2067 AND td.vid = 2
> > > >
> > > > IMHO this would improve compliance towards other database systems. To me
> > > > this seems to be in the reasonable scope of compatibility.
> > >
> > > Which "other database systems"? Only MySQL? If it is MySQL-only, we
> > > are unlikely to add it.
> >
> > The SQL standard does not support this syntax. They would have you put
> > the joins in a subselect (which is often not enough because then you
> > can't use outer joins).
>
> So the problem is that our DELETE ... USING does not allow ANSI join
> syntax? Can that be added?
I suspect that the reason MySQL has this syntax is because for a long time
they didn't have proper foreign keys and referential integrity.
With proper foreign keys and ON DELETE CASCADE, why would supporting
such syntax even be necessary?
--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2009-08-24 16:34:15 | Re: hba load error and silent mode |
| Previous Message | Magnus Hagander | 2009-08-24 16:28:38 | Re: hba load error and silent mode |