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
