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

Responder a