Re: Syntax error for UPDATE ... RETURNING INTO STRICT

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Syntax error for UPDATE ... RETURNING INTO STRICT
Дата
Msg-id 15a043b0-142d-7730-9ed1-2f2a37b876af@aklaver.com
обсуждение исходный текст
Ответ на Re: Syntax error for UPDATE ... RETURNING INTO STRICT  (Alexander Farber <alexander.farber@gmail.com>)
Ответы Re: Syntax error for UPDATE ... RETURNING INTO STRICT  (Alexander Farber <alexander.farber@gmail.com>)
Список pgsql-general
On 12/3/19 3:37 AM, Alexander Farber wrote:
> Thank you Patrick -
> 
> On Tue, Dec 3, 2019 at 11:49 AM Patrick FICHE <Patrick.Fiche@aqsacom.com 
> <mailto:Patrick.Fiche@aqsacom.com>> wrote:
> 
> 
>     It seems that STRICT is the issue.____
> 
>     But why does your function return a table of boolean in this case ?____
> 
>     As it only updates one record, it would probably be easier to return
>     a boolean only.____
> 
>     CREATE OR REPLACE FUNCTION words_toggle_puzzle(
>                      in_mid     bigint
>              ) RETURNS boolean
>       AS
>     $func$
>              UPDATE words_moves
>              SET puzzle = NOT puzzle
>              WHERE mid = in_mid
>              RETURNING puzzle;
>     $func$ LANGUAGE sql;
> 
> 
> your suggestion works well, thank you.
> 
> I wanted to use strict, because the mid is a PK - so there should always 
> be an exactly one record that has been updated

Which you will get without STRICT:

https://www.postgresql.org/docs/11/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW

"For INSERT/UPDATE/DELETE with RETURNING, PL/pgSQL reports an error for 
more than one returned row, even when STRICT is not specified. This is 
because there is no option such as ORDER BY with which to determine 
which affected row should be returned."


Though I still not sure what was wrong with your initial attempt?:


ERROR:  42601: syntax error at or near "INTO"
LINE 11:         INTO STRICT out_puzzle;
         ^
LOCATION:  scanner_yyerror, scan.l:1128

 From the error it looks like a hidden space issue or something.

> 
> (or otherwise, in very strange cases - the SQL would fail and my 
> java-servlet would throw SQLException)
> 
> Regards
> Alex
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Syntax error for UPDATE ... RETURNING INTO STRICT
Следующее
От: stan
Дата:
Сообщение: Issue upgrading from V11 to V12 on Debian