Re: [pgbr-geral] Update ou select
Em 19 de agosto de 2015 00:28, Danilo Silva danilo.dsg.go...@gmail.com escreveu: Pessoal, Considerando: pedido | item 1| ABC 1| XYZ 2| XPTO Tenho uma rotina de integração onde, para cada item do pedido, eu preciso indicar o recebimento do pedido, sendo efetuado um update na tabela de pedidos dizendo que aquele pedido foi recebido. Terei que utilizar uma trigger para isso e a minha dúvida é: Para cada insert na tabela de itens efetuar o update da tabela de pedidos OU Para cada insert na tabela de itens, fazer um select na tabela de pedidos para saber se o pedido já foi recebido, e caso não tenha sido recebido, efetuar o update. Creio que efetuar o select antes será melhor para evitar os buracos que o update causa e assim diminuir as ações do autovacuum na tabela de pedidos. Não respondendo diretamente sua pergunta mas apenas salientando que você pode testar no próprio UPDATE, antes de fazer o SELECT, algo como: UPDATE pedidos SET recebido = true WHERE codigo_pedido = XYZ AND NOT recebido; Senão você teria que fazer um SELECT FOR UPDATE para tentar evitar race-condition em ambientes com concorrẽncia. []s -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://github.com/guedes - http://guedesoft.net http://www.postgresql.org.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] Update ou select
Em 19 de agosto de 2015 09:13, Dickson S. Guedes lis...@guedesoft.net escreveu: Em 19 de agosto de 2015 00:28, Danilo Silva danilo.dsg.go...@gmail.com escreveu: Pessoal, Considerando: pedido | item 1| ABC 1| XYZ 2| XPTO Tenho uma rotina de integração onde, para cada item do pedido, eu preciso indicar o recebimento do pedido, sendo efetuado um update na tabela de pedidos dizendo que aquele pedido foi recebido. Terei que utilizar uma trigger para isso e a minha dúvida é: Para cada insert na tabela de itens efetuar o update da tabela de pedidos OU Para cada insert na tabela de itens, fazer um select na tabela de pedidos para saber se o pedido já foi recebido, e caso não tenha sido recebido, efetuar o update. Creio que efetuar o select antes será melhor para evitar os buracos que o update causa e assim diminuir as ações do autovacuum na tabela de pedidos. Não respondendo diretamente sua pergunta mas apenas salientando que você pode testar no próprio UPDATE, antes de fazer o SELECT, algo como: UPDATE pedidos SET recebido = true WHERE codigo_pedido = XYZ AND NOT recebido; Putz, é verdade, caraca esqueci que posso fazer desta forma, deve ter sido o horário :) Valeu... []s Danilo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Update ou select
Pessoal, Considerando: pedido | item 1| ABC 1| XYZ 2| XPTO Tenho uma rotina de integração onde, para cada item do pedido, eu preciso indicar o recebimento do pedido, sendo efetuado um update na tabela de pedidos dizendo que aquele pedido foi recebido. Terei que utilizar uma trigger para isso e a minha dúvida é: Para cada insert na tabela de itens efetuar o update da tabela de pedidos OU Para cada insert na tabela de itens, fazer um select na tabela de pedidos para saber se o pedido já foi recebido, e caso não tenha sido recebido, efetuar o update. Creio que efetuar o select antes será melhor para evitar os buracos que o update causa e assim diminuir as ações do autovacuum na tabela de pedidos. []s Danilo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral