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