2015-02-20 16:01 GMT-02:00 Matheus Saraiva <[email protected]>:

> *funcInsertCliente(f_nome varchar,  f_telefone varchar, f_endereco
> integer, f_datanasc, f_filhos Filhos[]) RETURN boolean*
>
> *BEGIN*
> *    INSERT INTO Clientes*
> *    (*
> *        nome,*
> *        telefone,*
> *        endereco,*
> *        datanasc*
> *    ) VALUES($1, $2, $3, $4);*
>
> *    INSERT INTO Filhos*
> *    (*
> *        nome,*
> *        idade,*
> *        genitor,*
> *    ) SELECT * FROM unnest(f_filhos);*
>
> *    RETURN TRUE;*
>
> *    EXCEPTION*
>
> *        WHEN NOT_NULL_VIOLATION THEN*
> *            RAISE NOTICE 'Required filds are blank';*
> *            RETURN FALSE;*
> *        WHEN UNIQUE_VIOLATION THEN*
> *            RAISE NOTICE 'One or more unique keys were violated';*
> *            RETURN FALSE;*
> *        WHEN RESTRICT_VIOLATION THEN*
> *            RAISE NOTICE 'One or more restricts were violated';*
> *            RETURN FALSE;*
> *END;*



Tirando o fato da sintaxe não ser válida, funcionaria, seria inserido
primeiro em "Clientes" depois em "Filhos", entretanto me parece que você
esqueceu de incluir a inserção da chave de "Clientes" em "Filhos".

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a