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