From: | raf <raf(at)raf(dot)org> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | update returning order by syntax error question |
Date: | 2019-09-12 03:17:43 |
Message-ID: | 20190912031743.jfbfj7e5ri5is36t@raf.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
postgresql-9.6.15
I just tried something like:
select * from
(update tblname t set ... where ... returning ...)
order by ...;
assuming it would work but it didn't.
That's OK. I found on stackoverflow
that a CTE can be used to do it:
with u as
(update tblname t set ... where ... returning ...)
select * from u order by ...;
What surprises me is the syntax error:
ERROR: syntax error at or near "t"
LINE 2: tblname t
^
If the syntax was invalid because an update returning
statement can't appear in a from clause, I'd expect the
error to be at the token "update".
It's almost as if the parser sees "update" as a possible
table name (rather than a reserved word) and "tblname"
as the alias for that table and it's expecting a comma
or left/right/full etc. when it seess the "t".
Anyone care to explain why the error is what it is?
It's no big deal. I'm just curious.
cheers,
raf
From | Date | Subject | |
---|---|---|---|
Next Message | Luca Ferrari | 2019-09-12 05:33:55 | Re: update returning order by syntax error question |
Previous Message | Thomas Munro | 2019-09-11 23:00:34 | Re: ERROR: too many dynamic shared memory segments |