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