Re: [pgbr-geral] Erro backup
2015-02-18 9:18 GMT-02:00 Bruno Pio brunocf...@gmail.com: pg_dump: lendo esquemas pg_dump: lendo tabelas definidas pelo usuário pg_dump: esquema com OID 2848468115 não existe Isso não é um bom sinal. Suspeito que tenha alguma relação corrompida. Sabe se teve algum problema de hardware nesse servidor ou algo fora do comum recentemente? Pode verificar o que retorna a seguinte consulta? SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE relnamespace = 2848468115; Obs.: Existem diversos schemas dentro desse banco, essa mesma mensagem ocorre quando tento fazer o backup de qualquer schema ou do banco todo. Pesquisando um pouco sobre o assunto encontrei no blog do Sr.Fabrízio de Royes Mello uma função em plpgsql para procurar OID no catálogo ( http://fabriziomello.blogspot.com.br/2009_01_01_archive.html), porém esse OID 2848468115 não é encontrado. Nas pesquisas que fiz também encontrei sugestão de executar um REINDEX no banco, ao fazer isso me ocorre a mensagem: ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 Provavelmente é uma tabela corrompida (se fosse um índice o REINDEX resolveria), pode verificar de qual se trata usando a seguinte consulta: SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE relfilenode = 13581760; Suspeito que seja a mesma da consulta acima, mas temos que conferir. O PostgreSQL (9.2.5) está instalado num servidor Linux e estou acessando por uma máquina Windows com o pgAdmin (1.16.1). O cliente não tem acesso ao Linux no momento, então não sei dizer mais detalhes e nem abrir o log, essas são mensagens que estão sendo retornadas no pgAdmin. Já adianto que as consultas acima é para uma análise, apesar de conseguir resolver remoto algumas coisas é bem provável que você irá precisar de conectar no servidor remoto para garantir a consistência dos dados. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Erro backup
Prezados, bom dia! Estou com um problema ao tentar realizar o backup via pg_dump de um banco, está me retornando a mensagem: pg_dump: lendo esquemas pg_dump: lendo tabelas definidas pelo usuário pg_dump: esquema com OID 2848468115 não existe Obs.: Existem diversos schemas dentro desse banco, essa mesma mensagem ocorre quando tento fazer o backup de qualquer schema ou do banco todo. Pesquisando um pouco sobre o assunto encontrei no blog do Sr.Fabrízio de Royes Mello uma função em plpgsql para procurar OID no catálogo ( http://fabriziomello.blogspot.com.br/2009_01_01_archive.html), porém esse OID 2848468115 não é encontrado. Nas pesquisas que fiz também encontrei sugestão de executar um REINDEX no banco, ao fazer isso me ocorre a mensagem: ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 Ao tentar rodar um VACUUM também ocorre esse mesmo erro do REINDEX. O PostgreSQL (9.2.5) está instalado num servidor Linux e estou acessando por uma máquina Windows com o pgAdmin (1.16.1). O cliente não tem acesso ao Linux no momento, então não sei dizer mais detalhes e nem abrir o log, essas são mensagens que estão sendo retornadas no pgAdmin. Alguém saberia me dizer se é possível corrigir isso e, se sim, o que é necessário fazer? Obrigado ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Erro backup
Matheus Sobre a criação dessa view, sei que recentemente foram recriadas algumas tabelas e populadas novamente nesse banco, se isso pode ter criado essa view eu não sei, vou verificar como isso foi feito. Sobre o pg_resetxlog, acredito ser muito difícil que alguém tenha feito isso. Matheus e Fabrízio Assim que possível, vou seguir os passos descritos para correção da pg_statistic e remoção do registro dessa view na pg_catalog. Eu posto o resultado quando o fizer. Muito obrigado por enquanto pela ajuda! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Revoke describe objects
On 18-02-2015 16:39, Matheus de Oliveira wrote: 2015-02-18 16:32 GMT-02:00 Euler Thomas Garcia euler.gar...@pocos-net.com.br: Pessoal, boa tarde, Como posso remover permissões de exibir objetos (estrutura das tabelas e código de triggers e funções). Não é possível, uma vez que o usuário tem acesso ao catálogo ele pode ver essas informações. Creio (nao testei) que vc pode revogar as permissões de acesso ao catálogo do usuário em questão e do public, mas isso tem um efeito colateral indesejado que é o não funcionamento de algumas ferramentas tipo: psql, pgadmin, phppgadmin, etc, pois estas precisam acessar o catálogo para mostrar as informações de tabelas/campos/etc. Também não testei, mas talvez poderemos fazer algo mais esperto na 9.5 com o Row-Level Security, criando uma POLICY [1] para não listar as linhas da pg_catalog.pg_proc. Att, [1] http://www.postgresql.org/docs/devel/static/sql-createpolicy.html -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Revoke describe objects
On 18-02-2015 17:12, Fabrízio de Royes Mello wrote: Também não testei, mas talvez poderemos fazer algo mais esperto na 9.5 com o Row-Level Security, criando uma POLICY [1] para não listar as linhas da pg_catalog.pg_proc. Desconsiderem... acabei de testar e não é possível criar uma POLICY para o catálogo. Att, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Revoke describe objects
Pessoal, boa tarde, Como posso remover permissões de exibir objetos (estrutura das tabelas e código de triggers e funções). Os usuários não tem permissão para executar as funções ou manipular tabelas, mas conseguem exibi-las (até mesmo o código das funções). Gostaria de restringir isso. Alguém tem uma luz por favor? Desde já obrigado. -- Atenciosamente, Euler Thomas Garcia Rede Sul Mineira de Provedores euler.gar...@pocos-net.com.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Revoke describe objects
2015-02-18 16:32 GMT-02:00 Euler Thomas Garcia euler.gar...@pocos-net.com.br: Pessoal, boa tarde, Como posso remover permissões de exibir objetos (estrutura das tabelas e código de triggers e funções). Não é possível, uma vez que o usuário tem acesso ao catálogo ele pode ver essas informações. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Erro backup
Teste pg_dump: esquema com OID 2848468115 não existe Isso não é um bom sinal. Suspeito que tenha alguma relação corrompida. Sabe se teve algum problema de hardware nesse servidor ou algo fora do comum recentemente? Pode verificar o que retorna a seguinte consulta? SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE relnamespace = 2848468115; Segundo o cliente não houve nada de anormal com seu servidor, mas solicitei que ele peça ao pessoal que cuida de sua infra para fazer um teste de memória e HD na máquina. Outros pontos a verificar são: - Algum parâmetro de configuração não seguro, como fsync=off ou full_page_writes=off? - Estava executando versões mais antigas anteriormente? Como foi feita a migração? Não me lembro de cabeça nenhum bug na 9.2 que causasse tais erros, mas vale a pena dar uma olhada nos release notes. Sobre esses parâmetros, tanto o fsync como o full_page_writes estão como on, e não existia nenhuma versão mais antiga do PostgreSQL rodando, a instalação já foi feita na versão 9.2. Vou dar uma olhada nos release notes. Quanto a consulta, o retorno foi: 13124322;nf_{ssdmed;13124322;v Esse é um nome bem estranho, e no caso é uma view. Tem como saber no histórico da aplicação algo sobre essa view? Está em uso? De onde veio? Etc. Segundo o desenvolvedor, não é utilizada nenhuma view com esse nome, o que ele disse que utiliza são cursores. O que existe é uma tabela com o nome de nf_issdmed. ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 Provavelmente é uma tabela corrompida (se fosse um índice o REINDEX resolveria), pode verificar de qual se trata usando a seguinte consulta: SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE relfilenode = 13581760; Suspeito que seja a mesma da consulta acima, mas temos que conferir. O retorno dessa consulta foi: 2840;pg_toast_2619;13581760;t Ok. Então é uma tabela TOAST, precisamos então mapear a qual tabela esta pertence: SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE reltoastrelid = 2840; O retorno desse SELECT foi: 2619;pg_statistic;13581757;r Por curiosidade, eu executei um SELECT * FROM pg_statistic; que me retornou o mesmo erro relatado anteriormente: ** Error ** ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 SQL state: XX001 Que vi que significa Data Corrupted, é isso mesmo? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Erro backup
Matheus, bom dia! Obrigado pelo rápido retorno pg_dump: esquema com OID 2848468115 não existe Isso não é um bom sinal. Suspeito que tenha alguma relação corrompida. Sabe se teve algum problema de hardware nesse servidor ou algo fora do comum recentemente? Pode verificar o que retorna a seguinte consulta? SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE relnamespace = 2848468115; Segundo o cliente não houve nada de anormal com seu servidor, mas solicitei que ele peça ao pessoal que cuida de sua infra para fazer um teste de memória e HD na máquina. Quanto a consulta, o retorno foi: 13124322;nf_{ssdmed;13124322;v ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 Provavelmente é uma tabela corrompida (se fosse um índice o REINDEX resolveria), pode verificar de qual se trata usando a seguinte consulta: SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE relfilenode = 13581760; Suspeito que seja a mesma da consulta acima, mas temos que conferir. O retorno dessa consulta foi: 2840;pg_toast_2619;13581760;t Obrigado! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Erro backup
On 18-02-2015 14:18, Bruno Pio wrote: O retorno desse SELECT foi: 2619;pg_statistic;13581757;r Por curiosidade, eu executei um SELECT * FROM pg_statistic; que me retornou o mesmo erro relatado anteriormente: ** Error ** ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 SQL state: XX001 Que vi que significa Data Corrupted, é isso mesmo? Vc está com a tabela de estatísticas corrompida. A boa notícia é que ela pode ser recriada, mas vc precisa fazer: 1) setar o parametro allow_system_table_mods = on no seu postgresql.conf 2) reiniciar o seu PostgreSQL 3) executar um TRUNCATE na pg_statistic, pois isso irá criar um novo heap vazio 4) rode um ANALYZE na sua base, para popular novamente a pg_statistic 5) retire o parametro do item 1 do seu postgresql.conf 6) reinicie o seu PostgreSQL Att, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Erro backup
2015-02-18 14:18 GMT-02:00 Bruno Pio brunocf...@gmail.com: Quanto a consulta, o retorno foi: 13124322;nf_{ssdmed;13124322;v Esse é um nome bem estranho, e no caso é uma view. Tem como saber no histórico da aplicação algo sobre essa view? Está em uso? De onde veio? Etc. Segundo o desenvolvedor, não é utilizada nenhuma view com esse nome, o que ele disse que utiliza são cursores. O que existe é uma tabela com o nome de nf_issdmed. Isso pra mim é muito suspeito. Tem certeza de que não foi alguém criou uma view com o nome errado, não conseguiu excluir e tentou fazer alguma alteração direta no catálogo? Outra coisa, usaram (pode ser há muito tempo) o pg_resetxlog nessa instância? ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 Provavelmente é uma tabela corrompida (se fosse um índice o REINDEX resolveria), pode verificar de qual se trata usando a seguinte consulta: SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE relfilenode = 13581760; Suspeito que seja a mesma da consulta acima, mas temos que conferir. O retorno dessa consulta foi: 2840;pg_toast_2619;13581760;t Ok. Então é uma tabela TOAST, precisamos então mapear a qual tabela esta pertence: SELECT oid, relname, relfilenode, relkind FROM pg_class WHERE reltoastrelid = 2840; O retorno desse SELECT foi: 2619;pg_statistic;13581757;r Por curiosidade, eu executei um SELECT * FROM pg_statistic; que me retornou o mesmo erro relatado anteriormente: ** Error ** ERRO: cabeçalho de página é inválido no bloco 2046 da relação base/10928130/13581760 SQL state: XX001 Que vi que significa Data Corrupted, é isso mesmo? De fato é a mesma relação. Esse erro ocorre devido à tabela TOAST corrompida. Felizmente é a pg_statistic, os dados dela podem ser recriados. De qualquer forma sua base tem problemas de corrupção, eu recomendo você tentar fazer um backup usando o pg_dump dessa instância inteira (todas as bases). Faça o backup, depois remova tudo (rm -rf $PGDATA), recrie uma instância vazia (initdb ou pg_createcluster) e restaure o backup. É de fato a única forma de garantir que não há corrupção de dados. Agora, para fazer o pg_dump você tem que se livrar dos problemas atuais, quanto à pg_statistic eu imagino que não será um problema, já que os dados dela não são incluídos no pg_dump. Quanto à view, essa sim pode ser um problema. Primeiramente eu tentaria executar um REINDEX da pg_class, se isso não funcionar, nos resta executar um DELETE na pg_class desse registro especificamente (para isso você deverá se conectar como um superusuário e habilitar o allow_system_table_mods). **IMPORTANTE*:* execute imediatamente um backup físico, antes de tentar qualquer atualização nas tabelas de catálogo ou qualquer intervenção manual. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] duvida com trigger
2015-02-18 12:30 GMT-02:00 Douglas Fabiano Specht douglasfabi...@gmail.com : a trigger esta na tabela tabela movimento, e o delete é nela mesmo. se eu colocar no before e dentro de um bloco de transação dar rollback na aplicação a trigger será executada? exemplo begin insert na table X delete movimento(executa a trigger no before) update tabela Y(aqui ocorre um erro e um rollback) Sim, vai ser executada mas o INSERT feito dentro da função de trigger vai naturalmente ser desfeito. De qualquer modo isso não tem relação com o fato de ser AFTER ou BEFORE, o mesmo se aplica à ambos. Concordo com o Fabrízio, você queria ter criado uma trigger do tipo BEFORE. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] duvida com trigger
On 18-02-2015 11:44, Douglas Fabiano Specht wrote: Bom dia Pessoal tenho uma trigger after insert or delete, postgres 9.4, que se for feito um delete eu preciso dar um insert em uma tabela com um join. até ai tudo certo, ocorre que não esta fazendo o insert, pois o select não deve estar retornado dados. if (TG_OP = 'DELETE') then insert into dah.wdados(codempresa, tipo, codigo, titular, nro, chave, celular, dataoperacao) select old.codempresa, 'CO', old.codigo, old.nome, old.acesso, old.chave, c.celular, CURRENT_TIMESTAMP from cadcliente c join movimento h on (c.codigo = h.codigo ) where (h.chave = old.chave and h.codempresa=old.codempresa) ; return old; END IF; alguma dica ou segredo pra poder fazer esse join com where utilizando as colunas OLD? ou como eu poderia salvar o comando com seus valores? estou usando o debbuger do pgadmin, mas os valores dos campos não mostram. Douglas, Em qual tabela está essa trigger?? Lembre-se que o AFTER já considera a operação efetivada, ou seja, se a sua query com JOIN precisa das tuplas excluidas não serão retornadas. Me parece que vc precisa colocar esse seu INSERT no BEFORE DELETE. Att, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] duvida com trigger
Em 18 de fevereiro de 2015 12:18, Fabrízio de Royes Mello fabri...@timbira.com.br escreveu: On 18-02-2015 11:44, Douglas Fabiano Specht wrote: Bom dia Pessoal tenho uma trigger after insert or delete, postgres 9.4, que se for feito um delete eu preciso dar um insert em uma tabela com um join. até ai tudo certo, ocorre que não esta fazendo o insert, pois o select não deve estar retornado dados. if (TG_OP = 'DELETE') then insert into dah.wdados(codempresa, tipo, codigo, titular, nro, chave, celular, dataoperacao) select old.codempresa, 'CO', old.codigo, old.nome, old.acesso, old.chave, c.celular, CURRENT_TIMESTAMP from cadcliente c join movimento h on (c.codigo = h.codigo ) where (h.chave = old.chave and h.codempresa=old.codempresa) ; return old; END IF; alguma dica ou segredo pra poder fazer esse join com where utilizando as colunas OLD? ou como eu poderia salvar o comando com seus valores? estou usando o debbuger do pgadmin, mas os valores dos campos não mostram. Douglas, Em qual tabela está essa trigger?? Lembre-se que o AFTER já considera a operação efetivada, ou seja, se a sua query com JOIN precisa das tuplas excluidas não serão retornadas. Me parece que vc precisa colocar esse seu INSERT no BEFORE DELETE. Att, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Fabrizio, a trigger esta na tabela tabela movimento, e o delete é nela mesmo. se eu colocar no before e dentro de um bloco de transação dar rollback na aplicação a trigger será executada? exemplo begin insert na table X delete movimento(executa a trigger no before) update tabela Y(aqui ocorre um erro e um rollback) -- Douglas Fabiano Specht ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] duvida com trigger
Bom dia Pessoal tenho uma trigger after insert or delete, postgres 9.4, que se for feito um delete eu preciso dar um insert em uma tabela com um join. até ai tudo certo, ocorre que não esta fazendo o insert, pois o select não deve estar retornado dados. if (TG_OP = 'DELETE') then insert into dah.wdados(codempresa, tipo, codigo, titular, nro, chave, celular, dataoperacao) select old.codempresa, 'CO', old.codigo, old.nome, old.acesso, old.chave, c.celular, CURRENT_TIMESTAMP from cadcliente c join movimento h on (c.codigo = h.codigo ) where (h.chave = old.chave and h.codempresa=old.codempresa) ; return old; END IF; alguma dica ou segredo pra poder fazer esse join com where utilizando as colunas OLD? ou como eu poderia salvar o comando com seus valores? estou usando o debbuger do pgadmin, mas os valores dos campos não mostram. -- Douglas Fabiano Specht ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] duvida com trigger
On 18-02-2015 23:02, Douglas Fabiano Specht wrote: obrigado Matheus e Fabrizio, neste caso entao de utilizar o before, e der um rollback, ele vai desfazer o insert mesmo que seja feito em outra tabela correto? É isso ai meu guri... o PostgreSQL é ACID, então lembre-se do A=Atomicidade, ou seja, ou faz tudo ou não faz nada... ;-) E um INSERT/UPDATE/DELETE em uma tabela que tem um gatilho é uma transação só... blz? Att, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] duvida com trigger
Em 18 de fevereiro de 2015 12:34, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2015-02-18 12:30 GMT-02:00 Douglas Fabiano Specht douglasfabi...@gmail.com: a trigger esta na tabela tabela movimento, e o delete é nela mesmo. se eu colocar no before e dentro de um bloco de transação dar rollback na aplicação a trigger será executada? exemplo begin insert na table X delete movimento(executa a trigger no before) update tabela Y(aqui ocorre um erro e um rollback) Sim, vai ser executada mas o INSERT feito dentro da função de trigger vai naturalmente ser desfeito. De qualquer modo isso não tem relação com o fato de ser AFTER ou BEFORE, o mesmo se aplica à ambos. Concordo com o Fabrízio, você queria ter criado uma trigger do tipo BEFORE. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral obrigado Matheus e Fabrizio, neste caso entao de utilizar o before, e der um rollback, ele vai desfazer o insert mesmo que seja feito em outra tabela correto? -- Douglas Fabiano Specht ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral