Problema resolvido...
Obrigada..

Em 16/09/08, Vi <[EMAIL PROTECTED]> escreveu:
>
> Bom dia Pessoal!!
> Seguinte, estou escrevendo um procedure para atualizar/inserir dados em
> duas tabelas de uma só vez, porém o segundo update não acontece (a parte do
> insert eu ainda nao testei, por tanto nao sei se tem algum erro..), e não
> estou entendendo o motivo para a não realização do mesmo, senda que estou
> igualando os ids na condição, alguem poderia me ajudar?
>
>
> Obrigada!!
>
> []'s..
>
> contfisndid ->  FK para o campo contid.
>
> CREATE OR REPLACE FUNCTION atubs (cpf varchar (14),nom varchar (54),rua
> varchar (54), num varchar (54),cmp varchar (54),bro varchar (54),cid varchar
> (54),est char (2),cep char (9)) RETURNS "text" AS $$
> DECLARE
> infcont record;
> infcontfs record;
> BEGIN
>     select into infcont contid from cont where contcpf = cpf;
>
>     IF FOUND
>     THEN
>           UPDATE cont
>                  SET
>                         contnom = nom
>           WHERE contcpf = cpf;
>
>           UPDATE contfisnd
>              SET
>                 contfisndrua = rua,
>                 contfisndnum = num,
>                 contfisndcmp = cmp,
>                 contfisndbro = bro,
>                 contfisndcid = cid,
>                 contfisndest = est,
>                 contfisndcep = cep
>
>              WHERE contfisndid = infcont.contid;
>
>          RETURN NULL;
>
>     ELSE
>          select into infcontfs contid from cont where contcpf = cpf;
>          INSERT INTO cont (
>                            contid,
>                            contcpf,
>                            contnom )
>                   VALUES (
>                             nextval('cont_contid_seq'),
>                             cpf,
>                             nom );
>
>          INSERT INTO contfisnd (
>                                  contfisndid,
>                                  contfisndrua,
>                                  contfisndnum,
>                                  contfisndcmp,
>                                  contfisndbro,
>                                  contfisndcid,
>                                  contfisndest,
>                                  contfisndcep )
>                    VALUES(
>                               infcontfs.cntid,
>                               rua,
>                               num,
>                               cmp,
>                               bro,
>                               cid,
>                               est,
>                               cep );
>
>          RETURN NULL;
>     END IF;
> END;
>
> $$ language plpgsql;
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a