Não sou muito bom com PostgreSQL + Python no Windows, meus ambientes com Python são todos no Linux.
Teria que conferir com alguém da lista. Em 11 de novembro de 2011 10:16, Marllos <[email protected]>escreveu: > 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 > > -- Daniel Cristian Cruz クルズ クリスチアン ダニエル
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
