Em Qua, 2015-02-25 às 17:51 -0300, Matheus de Oliveira escreveu:
> 
> 2015-02-25 17:31 GMT-03:00 Matheus Saraiva
> <[email protected]>:
>         Correto, vou criar um tipo composto sem o código. Mas sobre
>         pegar os códigos dos dependentes inseridos, ainda não percebi
>         outra solução além da minha ideia inicial. Só lembrando que um
>         titular (cliente) pode ter vários dependentes, então eu terei
>         que ter uma lista com o código de todos eles para poder
>         inseri-los na tabela "Dependentes".
> 
> 
> Ok.
> 
> 
> Uma solução simples é usar "wCTE" (Writable Comman Table Expression):
> 
> 
>     WITH pessoas AS (
> 
>         INSERT INTO pessoas(...)
> 
>         SELECT * FROM unnest(...)
> 
>         RETURING codigo
> 
>     )
> 
>     INSERT INTO dependentes(pessoa, titular)
> 
>     SELECT p.codigo, cliente
>     FROM pessoas p;
> 
Minha função par inserir clientes está com erre de sintaxe nesse trecho:


                            --- INSERE CHAVE E FISICAS ---
        With chv as
        (
            with kei as
            (
                insert into "Chaves" -- Inserer a chave (Login e Senha) na 
tabela de chaves
                (
                    login,
                    senha

                ) values ($8, $9) returning codigo -- Inserer a chave e retorna 
o código da mesma
                
            ) insert into "Fisicas"(pessoa, chave) select person, k.codigo from 
kei k returning chave -- Insere a pessoa na tabela de de pessoas Fisica e 
retorna a chave

        )
        Insert into "Acessos" -- Insere as liberações aos modulos na tabela 
Acessos
        (
            chave,
            modulo,
            liberacao

        ) select c.chave, * from unnest(f_modulos) from chv c; -- Insere os 
módulos e suas liberações referentes à chave


O erro está sendo:


            ERROR:  syntax error at or near "from"
            LINE 63: ...       ) select c.chave, * from unnest(f_modulos) from 
chv c...
                                                                          ^

Sei que é um erro de sintaxe nesse segundo FROM, mas ainda não consegui
descobrir o jeito certo.

Outra questão. O uso do aliase é obrigatório? Não poderia ser de forma
direta como:

select chv.chave, * from unnest(f_modulos);

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

Responder a