A idéia é emitir a msg se a soma resultante do update seja 0(zero) em uma
só declaração sem usar duas linhas, pois teria que alimentar uma variável
ou fazer um novo select na base, se possível.

Em 17 de outubro de 2012 15:07, Fabrízio de Royes Mello <
[email protected]> escreveu:

>
> 2012/10/17 Anselmo Silva <[email protected]>
>
>> CENÁRIO:
>>
>> create temp table teste (id serial not null, x numeric, y numeric, z
>> numeric, primary key(id));
>>
>> insert into teste (x,y,z) values(1,2,3),(4,5,6),(7,8,9)
>>
>> Do
>> $$
>> begin
>> IF (UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = 1 RETURNING ((X+Y+Z) =
>> 0)) THEN RAISE NOTICE 'TESTE CONCLUÍDO COM SUCESSO'; END IF;
>> end;
>> $$
>> language plpgsql;
>>
>>
>> ERRO:  erro de sintaxe em ou próximo a "UPDATE"
>> LINE 4:  IF (PERFORM UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = ...
>>                      ^
>> ********** Error **********
>> ERRO: erro de sintaxe em ou próximo a "UPDATE"
>> SQL state: 42601
>> Character: 27
>>
>>
>> Seria possível a abordagem acima? se sim onde estou errando?
>>
>>
> Pelo que entendi, sua intenção e emitir aquela mensagem via RAISE NOTICE
> caso o update seja executado com sucesso, ou seja que altere linhas da
> tabela. Se esse entendimento está correto então vc pode fazer assim:
>
> DO
> $$
> BEGIN
>         UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = 1;
>  IF FOUND THEN
>              RAISE NOTICE 'TESTE CONCLUÍDO COM SUCESSO';
>         END IF;
> END;
> $$
> LANGUAGE plpgsql;
>
>
> Att,
>
> --
> Fabrízio de Royes Mello
> Consultoria/Coaching PostgreSQL
> >> Blog sobre TI: http://fabriziomello.blogspot.com
> >> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
> >> Twitter: http://twitter.com/fabriziomello
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Anselmo M. Silva
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a