Re: " Adding missing FROM-clause entry for table .... " problem.
От | Stephan Szabo |
---|---|
Тема | Re: " Adding missing FROM-clause entry for table .... " problem. |
Дата | |
Msg-id | 20030218075714.E20577-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | Re: " Adding missing FROM-clause entry for table .... " problem. (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-sql |
On Tue, 18 Feb 2003, Tom Lane wrote: > Bruno Wolff III <bruno@wolff.to> writes: > > Christoph Haller <ch@rodos.fzk.de> wrote: > >> AFAIK, statements like > >> DELETE FROM t1 where t1.id = t2.id ; > >> are legal. Could the parser still work on this, if the feature is > >> removed? > > > Only if a new syntax is added. > > For UPDATE, we actually do have an extension syntax that allows naming > secondary tables explicitly: > > UPDATE target SET ... FROM other-tables WHERE ... > > The trouble with extending this to DELETE is that DELETE already uses > the keyword FROM. Seems like we are stuck with a choice between > > DELETE FROM target FROM other-tables WHERE ... > > DELETE FROM target, other-tables WHERE ... > > both of which are bizarre and confusing to my eyes. I think that MySQL > uses the second form, which I like even less than the first (it obscures > the very fundamental semantic difference between the deletion target and > the other tables). > > Or we could go off with a different keyword, perhaps > > DELETE FROM target WITH other-tables WHERE ... > > but that doesn't seem to pass the low-astonishment test either. It'd seem reasonable to use something like SQL99's WITH, although that'd put the WITH before the FROM I think. That'd at least be similar to using it in select (admittedly we don't have it yet, but wasn't someone talking about it?)
В списке pgsql-sql по дате отправления: