Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Alexsander Rosa
Em 13 de outubro de 2011 18:43, desenvolvedor@gmail.com escreveu: Alexandre, poderia citar os malefícios das chaves artificiais? Supondo que você esteja se referindo a mim (Alexsander), o problema é o uso indiscriminado de chaves artificiais. Por exemplo, uma tabela de CEP não precisa ter

Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Charles Viana
2011/10/14 Alexsander Rosa alexsander.r...@gmail.com Em 13 de outubro de 2011 18:43, desenvolvedor@gmail.com escreveu: Alexandre, poderia citar os malefícios das chaves artificiais? Supondo que você esteja se referindo a mim (Alexsander), o problema é o uso indiscriminado de chaves

Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/14 Charles Viana charles.vi...@gmail.com: Voce citou um bom exemplo, no caso de CEP cidade onde o cep pode repetir até 2 vezes ou mais. Exemplo: Rua Pio XII   Centro    Mairiporã    SP    0760 Rua XV de Novembro    Centro    Mairiporã    SP    0760 Mas aí é uma

Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Alexsander Rosa
Em 14 de outubro de 2011 14:25, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2011/10/14 Charles Viana charles.vi...@gmail.com: Voce citou um bom exemplo, no caso de CEP cidade onde o cep pode repetir até 2 vezes ou mais. Exemplo: Rua Pio XII   Centro    Mairiporã 

Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Marcal Hokama
From: l...@dutras.org Date: Fri, 14 Oct 2011 14:25:13 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Função Update or Insert 2011/10/14 Charles Viana charles.vi...@gmail.com: Voce citou um bom exemplo, no caso de CEP

Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Shander Lyrio
Em 14-10-2011 14:54, Marcal Hokama escreveu: Exato. Na tabela de CEPs cada CEP é único. O que não se pode confundir é a relação entre CEP e logradouro, onde um único CEP pode ser referenciado por mais de um logradouro (como mostrado acima), no caso de CEPs com sufixo 000 em algumas

Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Marcal Hokama
Date: Fri, 14 Oct 2011 15:24:52 -0300 From: shan...@nucleo45.com.br To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Função Update or Insert O Cep não é uma entidade, nem chave natural de entidade alguma é apenas o atributo de um

Re: [pgbr-geral] Função Update or Insert

2011-10-14 Por tôpico Shander Lyrio
Em 14-10-2011 15:53, Marcal Hokama escreveu: Uma tabela de cep's é apenas uma tabela cheia de dados em que o atributo cep é único e não se repete. Nada mais, um cep não pode ser usado como suficiente chave natural para identificar nada. O CEP como atributo de um endereço, tem um domínio, ou

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Alexsander Rosa
Em 10 de outubro de 2011 16:10, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Todavia, melhor resolver mesmo na sua aplicação. Na minha visão, tentar fazer UPDATE numa linha que não existe tem mesmo é que retornar erro. +1  (mas sei que cada caso é um caso) Mas um UPDATE de

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/13 Alexsander Rosa alexsander.r...@gmail.com: Mas um UPDATE de uma linha que não existe não dá erro, apenas não faz nada pois não encontra nenhuma tupla que satisfaça a cláusula WHERE. No máximo retorna NOT FOUND numa procedure, mas não chega a dar erro. Pois é, e o código tem de

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Alexsander Rosa
Em 13 de outubro de 2011 11:49, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2011/10/13 Alexsander Rosa alexsander.r...@gmail.com: Mas um UPDATE de uma linha que não existe não dá erro, apenas não faz nada pois não encontra nenhuma tupla que satisfaça a cláusula WHERE. No

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Shander Lyrio
Em 12-10-2011 21:48, Tiago Adami escreveu: Ok, entendi. Mas isto só se aplica quando você está usando SEQUENCES em chaves primárias - possivelmente artificiais. Isto não funcionaria com chaves naturais, do tipo CHAR ou VARCHAR, por exemplo. Agora começo entender porque os arquitetos de

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Shander Lyrio
Em 12-10-2011 22:10, Guimarães Faria Corcete DUTRA, Leandro escreveu: começo entender porque os arquitetos de software vivem reclamando quando recuso a criação de chaves artificiais (geralmente colunas com nome ID do tipo Integer) só porque fica mais fácil trabalhar com Hibernate :) Espero

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Shander Lyrio
Em 13-10-2011 11:49, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Alexsander Rosaalexsander.r...@gmail.com: Mas um UPDATE de uma linha que não existe não dá erro, apenas não faz nada pois não encontra nenhuma tupla que satisfaça a cláusula WHERE. No máximo retorna NOT FOUND

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/13 Shander Lyrio shan...@nucleo45.com.br:        Examente por isto você pode sempre criar um índice unique na chave natural que você usaria e que acha que garante unicidade. Teria o mesmo efeito de garantir unicidade, e ainda facilitaria o uso do ORM. A que custo?? Um pouco mais de

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/13 Shander Lyrio shan...@nucleo45.com.br: Em 13-10-2011 11:49, Guimarães Faria Corcete DUTRA, Leandro escreveu: Pois é, e o código tem de capturar o NOT FOUND como qualquer outro erro, e tratá-lo, seja abortando, convertendo num INSERT ou seja lá o que fôr correto no caso.        Mas

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/13 Shander Lyrio shan...@nucleo45.com.br:        Exato, para ter algo gerado automaticamente obviamente ele deveria seguir um padrão onde o banco de dados pudesse gerar por si só este valor. Caso contrário, não tem nem lógica enviar um insert para o servidor sem a chave primária. Se

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Alexsander Rosa
Em 13 de outubro de 2011 13:57, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2011/10/13 Shander Lyrio shan...@nucleo45.com.br:        ORM não resolve todos os males do mundo, ele resolve a grande maioria deles, mas não todos. Para mim, insert, update e delete é 99% por

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/13 Alexsander Rosa alexsander.r...@gmail.com: De resto, damos preferência para stored procedures que fazem coisas como emite_nota, baixa_estoque, etc. Com isso as regras de negócio ficam no BD e podem ser acessadas por aplicações standalone, console, web, mobile, etc de forma

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Shander Lyrio
Em 13-10-2011 13:48, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Shander Lyrioshan...@nucleo45.com.br: Eu acredito que o meio termo é, quase sempre, a melhor saída. Já vi diversas discursões sobre isto aqui na lista e no final sempre chega-se a conclusão que encontrar

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/13 Shander Lyrio shan...@nucleo45.com.br:        Não, quem chega a esta conclusão é quem está vivendo o processo do desenvolvimento. Modelo relacional não explica tudo, tentar forçar tudo a se encaixar no modelo relacional é contraproducente. Modelo não é e nunca foi explicação, é

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Flávio Alves Granato
Pessoalmente acho que o melhor custo/benefício é trabalhar com o cache da aplicação, ele bem administrado vai reduzir drasticamente a quantidade de consultas enviadas para o banco de dados. O seu achômetro pessoal vai contra a experiência geral da humanidade. O cache da aplicação tem seu

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Alexsander Rosa
Em 13 de outubro de 2011 15:44, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2011/10/13 Shander Lyrio shan...@nucleo45.com.br:        O que seria chave natural para um cadastro de clientes?? cpf se for física ou cnpj se for jurídica? existe alguma melhor? e quando a esposa

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Shander Lyrio
Em 13-10-2011 15:44, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Shander Lyrioshan...@nucleo45.com.br: O que seria chave natural para um cadastro de clientes?? cpf se for física ou cnpj se for jurídica? existe alguma melhor? e quando a esposa e o marido usam o mesmo

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/13 Alexsander Rosa alexsander.r...@gmail.com: Discordo do uso indiscriminado de chaves artificiais, isso traz mais malefícios do que benefícios. No entanto, na minha opinião o código do cliente não é uma chave artificial, pois ele aparece fora da aplicação. Perfeitamente! E por isso

Re: [pgbr-geral] Função Update or Insert

2011-10-13 Por tôpico desenvolvedor . net
Alexandre, poderia citar os malefícios das chaves artificiais? Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2011/10/13 Alexsander Rosa alexsander.r...@gmail.com: Discordo do uso indiscriminado de chaves artificiais, isso traz mais malefícios do que benefícios. No entanto,

Re: [pgbr-geral] Função Update or Insert

2011-10-12 Por tôpico Tiago Adami
Em 10 de outubro de 2011 22:02, Shander Lyrio shan...@nucleo45.com.br escreveu: Em 10/10/2011 20:08, Tiago Adami escreveu: Ok, mas imagine que há outra aplicação conectada ao banco de dados e insere um registro. Como o aplicativo (persistência) saberá que o objeto existe no banco, mas não na

Re: [pgbr-geral] Função Update or Insert

2011-10-12 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/12 Tiago Adami adam...@gmail.com: começo entender porque os arquitetos de software vivem reclamando quando recuso a criação de chaves artificiais (geralmente colunas com nome ID do tipo Integer) só porque fica mais fácil trabalhar com Hibernate :) Espero que eles entendam que é

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Flavio Henrique Araque Gurgel
Em 10 de outubro de 2011 09:51, Jean Carlos Quaresma Mariano jeanquare...@gmail.com escreveu: Bom dia, gostaria de saber se o Postgres tem um o recurso Update or Insert? Não tem. Quando absolutamente necessário, algumas pessoas usam o mecanismo de gatilhos pra resolver isso. Todavia, melhor

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/10 Flavio Henrique Araque Gurgel fha...@gmail.com: tentar fazer UPDATE numa linha que não existe tem mesmo é que retornar erro. E a aplicação sempre pode capturar o erro para passar a inserir. ___ pgbr-geral mailing list

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Bruno Silva
Não sei em que está sendo desenvolvida a aplicação, o que framework de persistência está sendo usado mas, essa funcionalidade, inclusive, já é implementada no Hibernate ( lado da aplicação ). Então pode ser utilizada a mesma lógica. Basicamente, o Hibernate verifica se já tem chave primária no

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/10 Bruno Silva bemanuel...@gmail.com: Então pode ser utilizada a mesma lógica. Basicamente, o Hibernate verifica se já tem chave primária no objeto (tipo o id não nulo) a ser gravado na base, se não tiver Insert se tiver Update. Se isso for verdade, o Hibernate reproduz um mau padrão

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Bruno Silva
Dutra, desculpa, não expliquei por completo. Como não sei se você tem conhecimento nessa parte e até pra ficar claro pra lista, no geral, vou tentar explicar sem usar os termos da programação em Hibernate. Ele não faz duas consultas. É que no caso de uma alteração de dados vc já trás todas as

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Shander Lyrio
Em 10/10/2011 14:59, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/10 Bruno Silvabemanuel...@gmail.com: Então pode ser utilizada a mesma lógica. Basicamente, o Hibernate verifica se já tem chave primária no objeto (tipo o id não nulo) a ser gravado na base, se não tiver Insert se

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/10/10 Shander Lyrio shan...@nucleo45.com.br:        Ele não seleciona, verifica no objeto que ainda está em memória E se o objeto não estiver em memória? Colocando em outras palavras, fiquei com a impressão de que ele fará o pior possível, trará tudo em memória antes de fazer qualquer

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Fabrízio de Royes Mello
Em 10 de outubro de 2011 10:18, Flavio Henrique Araque Gurgel fha...@gmail.com escreveu: Bom dia, gostaria de saber se o Postgres tem um o recurso Update or Insert? Não tem. Quando absolutamente necessário, algumas pessoas usam o mecanismo de gatilhos pra resolver isso. Também podes

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Shander Lyrio
Em 10/10/2011 15:34, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/10 Shander Lyrioshan...@nucleo45.com.br: Ele não seleciona, verifica no objeto que ainda está em memória E se o objeto não estiver em memória? Colocando em outras palavras, fiquei com a impressão de que

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Shander Lyrio
Em 10/10/2011 17:47, Shander Lyrio escreveu: Ele não seleciona, verifica no objeto que ainda está em memória E se o objeto não estiver em memória? Relendo, talvez eu não tenha respondido esta pergunta. Se o objeto foi criado pelo sistema, estando ou não persistido no

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Tiago Adami
Em 10 de outubro de 2011 17:52, Shander Lyrio shan...@nucleo45.com.br escreveu: Em 10/10/2011 17:47, Shander Lyrio escreveu: E se o objeto não estiver em memória?        Relendo, talvez eu não tenha respondido esta pergunta.        Se o objeto foi criado pelo sistema, estando ou não

Re: [pgbr-geral] Função Update or Insert

2011-10-10 Por tôpico Shander Lyrio
Em 10/10/2011 20:08, Tiago Adami escreveu: Ok, mas imagine que há outra aplicação conectada ao banco de dados e insere um registro. Como o aplicativo (persistência) saberá que o objeto existe no banco, mas não na memória? Isto é uma limitação da sua aplicação, linguagem, ou de sua