Oi Daniel, muito grato pela sua boa vontade. É isso mesmo que eu preciso,
só que eu não estou conseguindo dar o comando:
CREATE LANGUAGE plpythonu;
Sem esse comando recebo a msg que a linguagem python nao existe, mas ao der
esse comando recebo a msg:
[WARNING ] CREATE LANGUAGE plpythonu
ERRO: não pôde carregar biblioteca "C:/Arquivos de
programas/PostgreSQL/8.4/lib/plpython.dll": unknown error 126
So que a dll está presente no local indicado na msg
Em 10 de novembro de 2011 19:23, Daniel Cristian Cruz <
[email protected]> escreveu:
> Marllos,
>
> Não resisti, montei a função em plpython:
>
> CREATE EXTENSION plpythonu;
>
> CREATE OR REPLACE FUNCTION trigger_bala() RETURNS trigger LANGUAGE
> plpythonu AS $$
> import random
> rv = plpy.execute("SELECT attname FROM pg_attribute JOIN pg_constraint
> ON pg_constraint.conrelid = pg_attribute.attrelid WHERE conkey =
> ARRAY[attnum] AND contype = 'p' AND pg_attribute.attrelid = '%s'::regclass"
> % TD["table_name"], 1)
> TD["new"][rv[0]["attname"]] = random.random()
> return "MODIFY"
> $$;
>
> CREATE TABLE teste (
>
> a float primary key
> );
>
> CREATE TRIGGER teste_bala BEFORE INSERT ON teste FOR EACH ROW EXECUTE
> PROCEDURE trigger_bala();
>
> INSERT INTO teste (a) VALUES (DEFAULT) RETURNING *;
> a
> ----------------
> 0.345787825955
> (1 row)
>
> Em 10 de novembro de 2011 17:43, Marllos <[email protected]>escreveu:
>
>> Deixa eu explicar melhor, tenho um sistema asp+firebird, que estou
>> convertendo para php + firebird.
>> Com o objetos pdo do php, o mesmo codigo pode acessar uma base
>> equivalente em qualquer outro banco de dados (que o pdo dá suporte e são
>> muitos bancos, incluindo o postgresql).
>>
>> Então estou tentando reproduzir fielmente a minha base de dados do
>> firebird para o postgresql e isso é mais um exercicio de aprendizado com o
>> postgresql. Já a conversão de asp+firebird para php não é aprendizado, é
>> trabalho mesmo.
>>
>>
>> Em 10 de novembro de 2011 16:57, Danilo Silva <[email protected]
>> > escreveu:
>>
>>> 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
>>>
>>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Daniel Cristian Cruz
> クルズ クリスチアン ダニエル
>
> _______________________________________________
> 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