Re: BUG #7543: Invalid table alias: DELETE FROM table *
| От | Tom Lane |
|---|---|
| Тема | Re: BUG #7543: Invalid table alias: DELETE FROM table * |
| Дата | |
| Msg-id | 5536.1347854286@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | BUG #7543: Invalid table alias: DELETE FROM table * (barrybrown@sierracollege.edu) |
| Ответы |
Re: [DOCS] BUG #7543: Invalid table alias: DELETE FROM
table *
|
| Список | pgsql-bugs |
barrybrown@sierracollege.edu writes:
> I sometime see my users delete all rows from a table using a command like
> this:
> DELETE FROM customer *;
> The question is: what is the star? Is it a table alias or an
> output_expression?
Neither; it specifies to search the table and its inheritance children,
ie, the opposite of ONLY. This has been the default behavior (unless
you change the setting of sql_inheritance) for many years, so "*" has
largely fallen into disuse; but it's still accepted.
However ... I went looking for documentation on this point, and I'm
darned if I can find any. There certainly used to be some, but
apparently somebody got over-eager about editing the docs to reflect
the modern default behavior. The "*" doesn't even appear in the syntax
summaries for most of the commands where it's allowed, which is flat
wrong --- anywhere you can write "ONLY tablename", it's valid to write
"tablename*" instead.
So we have some docs work to do. Thanks for pointing it out.
regards, tom lane
В списке pgsql-bugs по дате отправления: