Por curiosidade, vc quer gerar um valor aleatório ( ou outro valor
qualquer) para cada pk das tabelas? Se for isso, não seria mais fácil
utilizar uma sequence e atribuir esta sequence como valor default das pks?

Danilo

Em 10 de novembro de 2011 16:29, Juliano Benvenuto Piovezan <
[email protected]> escreveu:

> 2011/11/10 Marllos <[email protected]>
> >
> > Foi mal amigo....
> > Na verdade eu quero é atribuir um valor a chave primária, mas fazendo
> refencia dinamica a chave.
> >
>
> Uma coisa que posso ter passado na discussão, mas sua chave é simples
> ou composta?
>
> Em plpgsql você realmente não conseguirá isso, a não ser que você
> utilize o mesmo nome do campo em todas as tabelas. Como os nomes são
> diferentes, como você especificou, apenas com alguma outra pl mesmo,
> como pltcl. Segue exemplo:
>
> CREATE OR REPLACE FUNCTION "fun_trg" (
> )
> RETURNS trigger AS
> $body$
> spi_exec -count 1 "SELECT a.attname as col
>                    FROM pg_class c,
>                         pg_attribute a,
>                         pg_index i
>                    WHERE c.oid = i.indrelid AND
>                          a.attrelid = i.indexrelid AND
>                          not a.attisdropped AND
>                          a.attnum > 0 AND
>                          i.indisprimary AND
>                          c.oid = '$TG_relid'"
> spi_exec -count 1 "SELECT uuid_generate_v4() as c"
> set NEW($col) $c
> return [array get NEW]
> $body$
> LANGUAGE 'pltcl'
> VOLATILE
> CALLED ON NULL INPUT
> SECURITY INVOKER
> COST 100;
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a