Re: [pgbr-geral] Modelando um Controle de Estoque
Bem pessoal resolvi entrar na discussão. Sou programador java e metido a Analista. Primeiramente antes de modelarmos algo seria ideal estudarmos o processo que envolve o controle de estoque. Com isso, poderíamos desenvolvermos em módulos, e ofertar um sistema de acordo com a necessidade do cliente. O tópico em questão é sobre Controle de Estoque. Mas vi diversas manifestações que, creio, fogem um pouco a controle de Estoque, que seriam como vender, a quem vender, como comprar, de quem comprar. Processo de Controle de Estoque: Basicamente, compreende-se em 3 etapas: entrada, logística de armazenagem e saída. Podemos chamar um sistema voltado para Almoxarifado. Entrada - Para entrada devemos responder as seguintes perguntas: - toda entrada de mercadoria deve ter um documento de entrada? - toda entrada de mercadoria deve ter um pedido previamente cadastrado? - deve haver conferência entre o documento de entrada e o pedido? - essa conferência é feita via sistema ou pelo operador? - todo produto de entrada deve ter código de barras? - Senão, devemos criar o código de barras, isto é, existe necessidade de adotarmos código de barras? - toda entrada é uma compra? - produtos tem número de série? - Como será tratado a entrada de produtos proveniente de devoluções, entregas não efetuadas, cortesias, etc? Logística de armazenagem: - vamos identificar o local de armazenamento do produto? - produtos similares com pequenas alterações iremos criar grade de produtos? Exemplo: sapatos tamanho 34,36,38,40. - produtos tem prazo de validade? - produtos são em unidade, volume (kg, lt, cm, m), produtos a granel? Saída: - todo produto que tiver saída tem um documento para tal? - toda saída tem nota fiscal? - se a saída é feita por uma transportadora, correio ou motoboy é criado um romaneio? - é possível a saída de produtos que não sejam vendas (feiras, demonstração, vendas em consignação)? Como tratar isso? Existirá documento de saída? - como serão tratadas as quebras? Existe documento para tal? - produtos para mostruário são dados saídas do Almoxarifado ou é identificado em local de armazenamento na logística? Tem muito mais perguntas que isso, no entanto é um bom começo. Lembrando. Toda transferência de mercadorias entre matriz x filial, filial x filial, depósito x ambos, desde que em endereços distintos (obviamente terão razões sociais distintas) deve ser emitido NF de transferência (Isso é Lei). Dentro da mesma empresa é um caso de logística e que devemos tratar, pois sempre devemos saber onde está a mercadoria (é o ideal). Outras perguntas? - Quem cadastra o produto, setor de compras ou almoxarifado? - Quem cadastra o fornecedor, setor de compras ou almoxarifado? - Quem cadastra o cliente, o setor de Vendas ou Crédito ou almoxarido?(EHEHEH) Outras discussões que devemos abordar é que informações o Financeiro, Compras, Vendas, Contabilidade e outros setores necessitam do Controle de Estoque (preferia chamar de Almoxarifado). Espero ter contribuído. Alecindro Quoting Wagner Bonfiglio [EMAIL PROTECTED]: Eu tenho algum conhecimento e algumas horas livres por dia, gostaria de entrar num projeto assim.. Sou novo na lista e não acompanhei a discussão, mas posso ajudar no desenvolvimento sim! 2008/6/24 Ribamar Sousa [EMAIL PROTECTED]: Desculpem-me se não estou conseguindo acompanhar o debate, acontece que o Coutinho me fez um convite e aceitei. Sinceramente estou sem tempo de ler e responder. Andei lendo boa parte e gostei muito da idéia do projeto e espero que não seja reinventar a roda. Mesmo que eu não esteja sem tempo mas fico contente pois o assunto esta em ótimas mãos. Para constar, se for preciso eu tenho um servidor com espaço ilimitado, é, ilimitado. Se precisarem de espaço e da criação de um portal num piscar de olhos, contem comigo. 2008/6/23 Rudinei Dias [EMAIL PROTECTED]: Sugestão. Visto a dificuldade de achar software de estoque bom e aberto na net, e a vontade do Ribamar em liberar seu esforço de modelagem, poderíamos fazer um grupo para desenvolver o core do negócio, todo com implementação m pl/pgsql. Assim ficaria facil de desenvolver a interface em qualquer linguagem de programação, seja web ou desktop. Ai sim pensar em algo abrangente, bem genérico. -- Ribamar FS - [EMAIL PROTECTED] http://ribafs.net ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Modelando um Controle de Estoque
Como comentei antes, acho que seria interessante trabalharmos sobre o ER, pois somente assim conseguiremos demonstrar melhor o que falamos. Se for relatar todo o detalhamento de tabelas de movimento e filhas vai ficar longo e nosso tempo geralmente é curto. Do contrário acabamos falando de um único ponto sem demonstrar toda a estruturação do ER, e parece como comentado abaixo, que se está falando de um único tabelão para tudo. E com certeza não é disso que estou falando. Jocimar de Oliveira escreveu: On Tuesday 24 June 2008 16:52:50 Alexsandro Haag wrote: Leandro DUTRA escreveu: 2008/6/24 Alexsandro Haag [EMAIL PROTECTED]: Pode ser sim. Dá prá fazer separado. Mas normalmente é uma mesma tabela, pois é tudo movimento de estoque. Então há uma tabela com movimento de estoque, e outra específica para cada tipo de movimento de estoque. Se não, vira bagunça. Não entendi por que bagunça? teria apenas uma campo indicando a CFOP e dentro da tabela de CFOPs um qualificador de saída ou entrada. Como ficaria a movimentação no momento do faturamento para entrega futura (não baixa estoque), e o faturamento que acompanha as mercadorias referente a entrega futura (baixa estoque) ? O movimento dos produtos num único arquivo é interessante para registrar apenas a movimentação, da qual vêm das saídas (NF, Ordem de Serviço/Ordem de produção, etc ...) e das entradas (NF, Romaneios de entrada, entrada por produção). Não consigo ver um único arquivo para controlar várias origens de entradas e saídas de produtos, isto fazendo referências com vários campos para tal identificação. Aconselho fazer a movimentação dos produtos num arquivo separado, mas que tal arquivo não seja a tabela filha de várias origens, realmente ficaria uma tabela com uma infinidade de campos. Na questão de códigos fiscais, é algo muito complicado para simplificar como entrada e saída de mercadoria, já que existe muitos códigos fiscais que não geram tal movimentação, por exemplo, como ficaria as entradas dos documentos com modelo: 06 - Energia elétrica, 08 a 11 que são conhecimentos de fretes que acompanham mercadoria ou que realmente são documentos de faturamento de transportadoras, modelo 22 - Telecomunicação, que pode ser compra ou venda da mesma. Imagina que teríamos que cruzar modelo fiscal x código fiscal x situação tributária x alíquota de ICMS x alíquota de IPI. Venho desenvolvendo há quase 20 anos, e não consigo ver uma centralização de tabelas para diminuir, pois isto vai aumentar e muito o tamanho de registros e irá gerar muitos, mas muitos problemas para gravar e ler estas informações, que no meu ponto de vista seria um trabalho para ser jogado e iniciado um novo. Vou continuar acompanhando estes e-mail's, pois achei interessante o ponto de vista de cada um que foi postado. legal ! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre Hibernate + Postgres + PLJava
Ótimo, é o caminho que estou pretendendo. Obrigado! Dickson Guedes escreveu: Alexsandro Haag escreveu: Pessoal, vi que em mensagens anteriores foi comentado, talvez pelo Leandro (acabei não guardando o e-mail) algo referente ao Hibernate conflitando com a geração de chaves naturais no Postgresql. IMHO, isso depende da metodologia de geração de classes adotada. O fluxo pode ser algo como: Cria-se o diagrama de classes - Cria-se o diagrama ER - Cria-se as entidades - Gera-se as classes a partir das entidades criadas. Neste modelo o DBA vai criando a base de dados conforme as regras de negócio e o Hibernate vai se adaptando a este modelo fisico. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre Hibernate + Postgres + PLJava
Leandro DUTRA escreveu: 2008/6/24 Alexsandro Haag [EMAIL PROTECTED]: Pessoal, vi que em mensagens anteriores foi comentado, talvez pelo Leandro (acabei não guardando o e-mail) algo referente ao Hibernate conflitando com a geração de chaves naturais no Postgresql. Não somente... o Hibernate tem uma série de práticas que dificulta manter um bom modelo. Por exemplo, os programadores Hibernate costumam reclamar de chaves naturais compostas. Certo entendi. Acho que vou sentir estes problemas na prática, deve ser um bom aprendizado. Gostaria de entender melhor o que seria este problema, pois estou justamente iniciando um projeto em Postgresql + Hibertante + Visual JSF. Pensei também em utilizar PLJava em preferência ao PL/Pgsql. Java é bem mais difícil de programar que PL/pgSQL. É basicamente C++ vs Ada. Acho Java muito parecido com C++. Isso quer dizer que PL/pgSQL é parecido com Ada? Acho que não. Brincadeira, entendi sua colocação, é só para descontrair mesmo. Acho que o PL/SQL do Oracle, ao qual estou mais familiarizado é mais próximo do Pascal do que de C++. E pelos poucos códigos que já montei em PL/pgSQL achei parecido com a sintaxe da Oracle. Na verdade me sinto a vontade com Java, nunca trabalhei com PL/Java, mas acho que, como tenho a intenção de desenvolver o Projeto em Java seria interessante poder programar as funções e procedures do banco com a mesma linguagem. Mas isso ainda é o que tenho mais dúvidas. Vou iniciar assim, se perceber que a dificuldade não compensará o esforço aí volto para o PL/pgSQL. Gostaria também da opinião de vocês sobre as tecnologias adotadas e sobre esta questão do PL... Eu daria uma olhada no Python, o SQL Alchemy tem sido muito elogiado. Pois é, realmente pensei nisso, mais especificamente no Django, pois o frontend do projeto é Web. Mas acabei optando pelo Java mesmo, acho que está mais consolidado. Opinião pessoal. Obrigado Leandro! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre Hibernate + Postgres + PLJava
Certo. Vou por este caminho então. Primeiro faço o modelo físico. Obrigado! Dickson Guedes escreveu: Leandro DUTRA escreveu: (...) derivar o DER de classes é um desastre. Concordo. Por isso que prefiro que as classes de mapeamento sejam criadas com base no modelo físico do banco de dados. Se deixar que o Hibernate gere o DER com base nas suas classes de mapeamento os resultados podem não ser os esperados. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Res: Modelando um Controle de Estoque
Sim Willian, tem razão. Percebi isso e comentei com o pessoal que seria mais produtivo trabalhar sobre o DER do que ficarmos defendendo cada um seu jeito pessoal de fazer, desta forma o que falamos pode ser analisado como um todo. Willian Jhonnes Lara dos Santos escreveu: Olá, pessoal... Desculpem minha intromissão na thread, tendo em vista que a discussão vai longe ainda. Tenho acompanhado o assunto, com certo interesse, afinal, algo de positivo se tira de tudo isso. Salvo opiniões pessoais, acho esta discussão bem produtiva. Bem, de maneira prática, algumas questões não ficaram bem definidas. Um bom exemplo é este: Que seja, mas como faria uma transferência de uma empresa para a mesma? Não existe mesma empresa com endereços diferentes, se os endereços são diferentes obrigatoriamente é outra empresa (filial)... [corte] Não se trata de Gambiarra, pois estamos garantindo a integridade através do ID sequencial... Um exemplo prático para isso: em uma entidade EMPRESA, cria-se uma sequence para controlar o Ãndice da entidade, servindo também como chave primária. Nesta entidade, o CNPJ NÃ�O é referenciado! Apenas os dados mais relevantes da empresa são, como tributação, etc. Em uma entidade FILIAIS são referenciados dados como CNPJ, endereço, etc., mas tendo como controle um valor seqÃŒencial baseado em uma foreign key vinda da entidade EMPRESA. Com isso, cada empresa pode ter n filiais, mesmo que com o mesmo CNPJ e endereço. Isso não é gambiarra, é um método de controle eficiente, muito útil para empresas pequenas. (Ex.: Empresa 1 Filial 1; Empresa 1 Filial 2; Empresa 2 Filial 1; Empresa 2 Filial 2; Empresa 2 Filial 3; etc.) Neste ponto, vejo que modelos únicos podem render certas vantagens no que tange a produtividade. Fica muito mais fácil desenvolver com a modelagem definida, mas vejo que o consenso para isso é difÃcil de se conseguir. Não vejo porque um assunto tão positivo quanto este tenha de virar um cabo-de-guerra baseado em opiniões pessoais. Mais uma vez, desculpem a intromissão. []'s --- Att.: Willian Jhonnes L. dos Santos Analista/Desenvolvedor Object/Free Pascal [EMAIL PROTECTED] --- Seja livre. Use Linux. Grupo de Usuários GNU/Linux de São José dos Pinhais Linux user number 449753 --- Powered by Slackware Linux 12.0 Kernel 2.6.21.5-custom --- Novos endereços, o Yahoo! que você conhece. Crie um email novo http://br.rd.yahoo.com/mail/taglines/mail/*http://br.new.mail.yahoo.com/addresses com a sua cara @ymail.com ou @rocketmail.com. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] case sensitive
Olá, No PostgreSQL não existe nenhum parâmetro de configuração para isso. O PostgreSQL não considera casa sensitive para objetos, mas considera para os dados, por exemplo, se você tem um campo da tabela com o conteúdo teste e você procurar por Teste ele não vai encontrar o registro, uma vez que o conteúdo armazenado é teste e você está procurando por Teste. Para resolver isso você precisar usa as funções de manipulações de strings (lower=converte para minúsculo e upper=converte para maiúsculo) de strings ou expressões regulares. []s 2008/6/24 josemario rosa [EMAIL PROTECTED]: Bom acho que não soube me expressar direito. Já fiz a importação dos dados para o postgre, já mudei o o hibernate para ele conectar o post, mas quando eu vou buscar alugo no banco na tabela paciente como 'Jose' e no banco esta JOSE ele não acha. Um professor meu falo q tenho como desabilitar isto no postgre.conf. Em 24/06/08, Joao [EMAIL PROTECTED] escreveu: meu caro se por acaso teu script ta criando os campos ou tabelas com sugiro que faca o seguinte: cat arquivo | tr -d \ novo_arquivo pronto! - Original Message - *From:* jota.comm [EMAIL PROTECTED] *To:* Comunidade PostgreSQL Brasileirapgbr-geral@listas.postgresql.org.br *Sent:* Tuesday, June 24, 2008 6:31 PM *Subject:* Re: [pgbr-geral] case sensitive Olá, Como assim tendo problemas com o case sensitive. Por padrão, o PostgreSQL sempre trata os caracteres como minúsculos, a não ser que você coloque o nome dos objetos entre aspas duplas. Por exemplo: postgres=# CREATE TABLE TABELA(CODIGO INTEGER); CREATE TABLE postgres=# \d TABELA Table public.tabela Column | Type | Modifiers +-+--- codigo | integer | postgres=# CREATE TABLE TABELA_123(CODIGO INTEGER); CREATE TABLE postgres=# \d tabela_123 Did not find any relation named tabela_123. O PostgreSQL considera que todos os objetos são minúsculos, como a tabela foi criada com aspas duplas () o PostgreSQL não encontra o objeto, porque foi especificado que o nome do objeto é TABELA_123 e não tabela_123. postgres=# \d TABELA_123 Table public.TABELA_123 Column | Type | Modifiers +-+--- codigo | integer | Espero ter ajudado. []S 2008/6/24 josemario rosa [EMAIL PROTECTED]: Ola a todos tenho um sistema com mais de 170 tabelas e estou migrando elas para postgre, estou tendo um problema com o case sensitive do postgre gostaria de saber se tem como desabilitar esta função no servidor já dei uma pesquisada na internet não achei nada . se não vou ter que tratar isto no em todas minhas classe dao Grato Jose Mario ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres PostgreSQL -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres PostgreSQL ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre Hibernate + Postgres + PLJava
2008/6/25 Alexsandro Haag [EMAIL PROTECTED]: Certo. Vou por este caminho então. Primeiro faço o modelo físico. Primeiro o conceitual, daí o físico, só então o Java... -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre Hibernate + Postgres + PLJava
2008/6/25 Alexsandro Haag [EMAIL PROTECTED]: Acho Java muito parecido com C++. Isso quer dizer que PL/pgSQL é parecido com Ada? Acho que não. Mas é mesmo, só que simplificado e direcionado para SQL. Na verdade, PL/pgSQL é baseado no Oracle PL/SQL, que é baseado numa versão de rascunho do SQL/PSM, que é baseado em Ada. O que me faz lembrar que todos deveríamos usar SQL/PSM ou alguma outra linguagem procedural padrão (Java, Python, Ruby c) em vez de PL/pgSQL, uma vez que esta está obsoleta — foi criada apenas para compatibilidade com Oracle; agora que o padrão SQL/PSM está disponível, é o que deveria ser usado. Talvez ainda seja necessário usar PL/pgSQL por motivos físicos ou capacidades ainda não implementadas alhures, mas o caminho está claro. Pois é, realmente pensei nisso, mais especificamente no Django, pois o frontend do projeto é Web. Mas acabei optando pelo Java mesmo, acho que está mais consolidado. Opinião pessoal. O que você quer dizer com isso? Python está bem maduro e é muito mais produtivo, então num caso geral eu preferiria. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Modelando um Controle de Estoque
O que coloquei abaixo é parte de um movimento de estoque, e não foje ao que postei. Por favor, qual o real objetivo que deverá atender ?, pois no mencionado abaixo não coloquei movimentação por cupom fiscal e negociação com clientes onde envolve custo de última entrada com várias classes para formação de preço. Acredito que seria interessante ter qual o objetivo final deste trabalho, o quê ele irá atender e informar. On Wednesday 25 June 2008 08:00:08 Alexsandro Haag wrote: Como comentei antes, acho que seria interessante trabalharmos sobre o ER, pois somente assim conseguiremos demonstrar melhor o que falamos. Se for relatar todo o detalhamento de tabelas de movimento e filhas vai ficar longo e nosso tempo geralmente é curto. Do contrário acabamos falando de um único ponto sem demonstrar toda a estruturação do ER, e parece como comentado abaixo, que se está falando de um único tabelão para tudo. E com certeza não é disso que estou falando. Jocimar de Oliveira escreveu: On Tuesday 24 June 2008 16:52:50 Alexsandro Haag wrote: Leandro DUTRA escreveu: 2008/6/24 Alexsandro Haag [EMAIL PROTECTED]: Pode ser sim. Dá prá fazer separado. Mas normalmente é uma mesma tabela, pois é tudo movimento de estoque. Então há uma tabela com movimento de estoque, e outra específica para cada tipo de movimento de estoque. Se não, vira bagunça. Não entendi por que bagunça? teria apenas uma campo indicando a CFOP e dentro da tabela de CFOPs um qualificador de saída ou entrada. Como ficaria a movimentação no momento do faturamento para entrega futura (não baixa estoque), e o faturamento que acompanha as mercadorias referente a entrega futura (baixa estoque) ? O movimento dos produtos num único arquivo é interessante para registrar apenas a movimentação, da qual vêm das saídas (NF, Ordem de Serviço/Ordem de produção, etc ...) e das entradas (NF, Romaneios de entrada, entrada por produção). Não consigo ver um único arquivo para controlar várias origens de entradas e saídas de produtos, isto fazendo referências com vários campos para tal identificação. Aconselho fazer a movimentação dos produtos num arquivo separado, mas que tal arquivo não seja a tabela filha de várias origens, realmente ficaria uma tabela com uma infinidade de campos. Na questão de códigos fiscais, é algo muito complicado para simplificar como entrada e saída de mercadoria, já que existe muitos códigos fiscais que não geram tal movimentação, por exemplo, como ficaria as entradas dos documentos com modelo: 06 - Energia elétrica, 08 a 11 que são conhecimentos de fretes que acompanham mercadoria ou que realmente são documentos de faturamento de transportadoras, modelo 22 - Telecomunicação, que pode ser compra ou venda da mesma. Imagina que teríamos que cruzar modelo fiscal x código fiscal x situação tributária x alíquota de ICMS x alíquota de IPI. Venho desenvolvendo há quase 20 anos, e não consigo ver uma centralização de tabelas para diminuir, pois isto vai aumentar e muito o tamanho de registros e irá gerar muitos, mas muitos problemas para gravar e ler estas informações, que no meu ponto de vista seria um trabalho para ser jogado e iniciado um novo. Vou continuar acompanhando estes e-mail's, pois achei interessante o ponto de vista de cada um que foi postado. legal ! Esta mensagem foi verificada pelo E-mail Protegido Terra. Atualizado em 25/06/2008 -- Saudações, Jocimar de Oliveira www.jocimar.com.br (42) 8402-3035 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Modelando um Controle de Estoque
[EMAIL PROTECTED] escreveu: O tópico em questão é sobre Controle de Estoque. Mas vi diversas manifestações que, creio, fogem um pouco a controle de Estoque, que seriam como vender, a quem vender, como comprar, de quem comprar. Apenas reforçando, já foi citado nesse mesmo tópico o Sistema Stoq que se propõe a fazer isso. Como o Riba falou, cuidado com a re-invenção da roda. Quem sabe, ao invés disso, o grupo de interessados poderia reunir esforços e ajudar no projeto já existente, já que o Stoq utiliza o nosso elefantinho e poderia ser uma boa forma de colocar em prática todo esse conhecimento aqui existente. Apenas uma opnião :) -- []s Dickson S. Guedes - Projeto Colmeia - Curitiba - PR (41) 3254-7130 ramal: 27 http://pgcon.postgresql.org.br http://makeall.wordpress.com/ http://planeta.postgresql.org.br/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] INSERT SIMULTÂNEO
Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Agradeço desde já a 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] INSERT SIMULTÂNEO
utilize trigger - Original Message - From: Vasco Antonio [EMAIL PROTECTED] To: pgbr-geral@listas.postgresql.org.br Sent: Wednesday, June 25, 2008 10:13 AM Subject: [pgbr-geral] INSERT SIMULTÂNEO Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Agradeço desde já a ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] INSERT SIMULTÂNEO
On Wed, Jun 25, 2008 at 10:13 AM, Vasco Antonio [EMAIL PROTECTED] wrote: Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK [corte] Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. BEGIN; INSERT INTO A(id) VALUES(nextval('seq_id')); INSERT INTO B(id) VALUES(currval('seq_id')); COMMIT; -Leo -- Leonardo Cezar http://pgcon.postgresql.org.br http://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] INSERT SIMULTÂNEO
Vasco Antonio wrote: Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Utilize trigger. Acho que isso pode te ajudar: http://pgdocptbr.sourceforge.net/pg82/plpgsql-trigger.html#PLPGSQL-TRIGGER-AUDIT-EXAMPLE Evandro ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Res: INSERT SIMULTÂNEO
Simples: dispare uma trigger na tabela A que faça o insert na tabela B. []'s --- Att.: Willian Jhonnes L. dos Santos Analista/Desenvolvedor Object/Free Pascal [EMAIL PROTECTED] --- Seja livre. Use Linux. Grupo de Usuários GNU/Linux de São José dos Pinhais Linux user number 449753 --- Powered by Slackware Linux 12.0 Kernel 2.6.21.5-custom --- - Mensagem original De: Vasco Antonio [EMAIL PROTECTED] Para: pgbr-geral@listas.postgresql.org.br Enviadas: Quarta-feira, 25 de Junho de 2008 10:13:48 Assunto: [pgbr-geral] INSERT SIMULTÂNEO Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Agradeço desde já a ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] INSERT SIMULTÂNEO
Olá, Você pode fazer um gatilho (trigger) que assim que inserir na tabela A insira também na tabela B. []s 2008/6/25 Vasco Antonio [EMAIL PROTECTED]: Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Agradeço desde já a ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres PostgreSQL ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] INSERT SIMULTÂNEO
2008/6/25 Vasco Antonio [EMAIL PROTECTED]: Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Faça-se um favor, se não for possível dar chaves naturais, pelo menos use domínios para dar nomes consistentes, por exemplo, no caso, ou nome é chave, ou CREATE DOMAIN idtba para usar nas duas. Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Qual a dificuldade em pegar o valor da seqüencia inserido em A? -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] INSERT SIMULTÂNEO
Duas saídas: triggers e rules (estas são mais simples). Aqui tem uns exemplos simples inspirados na documentação: http://pg.ribafs.net/down/prog//Modulo1Aula14FuncoesTriggers.pdf 2008/6/25 Vasco Antonio [EMAIL PROTECTED]: Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Agradeço desde já a ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Ribamar FS - [EMAIL PROTECTED] http://ribafs.net ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] INSERT SIMULTÂNEO
Faça utilizando gatilho e se for o caso dentro da função gatilho (Triggers) você faz a chamada para a sequencia completando o registro da tabela A. []´s 2008/6/25 Vasco Antonio [EMAIL PROTECTED]: Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Agradeço desde já a ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- José de Mello Júnior 41.9957-2007 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre Hibernate + Postgres + PLJava
Como comentei, é mais preferência pessoal mesmo. Quando falei em consolidado me referi aos órgãos independentes reguladores dos padrões Java. Ou seja, não está nas mãos da SUN como é o caso do .net da Microsoft. E o empenho sobre a OpenJDK também me estimulou. Com certeza Python é uma excelente linguagem e de aprendizado mais fácil que Java. Mas a questão produtividade é relativa. Leandro DUTRA escreveu: 2008/6/25 Alexsandro Haag [EMAIL PROTECTED]: Acho Java muito parecido com C++. Isso quer dizer que PL/pgSQL é parecido com Ada? Acho que não. Mas é mesmo, só que simplificado e direcionado para SQL. Na verdade, PL/pgSQL é baseado no Oracle PL/SQL, que é baseado numa versão de rascunho do SQL/PSM, que é baseado em Ada. O que me faz lembrar que todos deverÃamos usar SQL/PSM ou alguma outra linguagem procedural padrão (Java, Python, Ruby c) em vez de PL/pgSQL, uma vez que esta está obsoleta â�� foi criada apenas para compatibilidade com Oracle; agora que o padrão SQL/PSM está disponÃvel, é o que deveria ser usado. Talvez ainda seja necessário usar PL/pgSQL por motivos fÃsicos ou capacidades ainda não implementadas alhures, mas o caminho está claro. Pois é, realmente pensei nisso, mais especificamente no Django, pois o frontend do projeto é Web. Mas acabei optando pelo Java mesmo, acho que está mais consolidado. Opinião pessoal. O que você quer dizer com isso? Python está bem maduro e é muito mais produtivo, então num caso geral eu preferiria. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre Hibernate + Postgres + PLJava
Sim, com certeza. O físico só consegue existir partindo do conceitual. Leandro DUTRA escreveu: 2008/6/25 Alexsandro Haag [EMAIL PROTECTED]: Certo. Vou por este caminho então. Primeiro faço o modelo físico. Primeiro o conceitual, daí o físico, só então o Java... ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Modelando um Controle de Estoque
O Stoq inclusive não faz apenas isso. Ele tem também outros módulos: controle financeiro, ECF, CRM e outros. Uma coisa legal dele é que suas versões podem ser atualizadas via apt-get. Esse é o link onde falam sobre ajuda no desenvolvimento: http://www.stoq.com.br/index.php?option=com_contenttask=viewid=42Itemid=60 http://www.stoq.com.br/index.php?option=com_contenttask=viewid=42Itemid=60 Dickson Guedes escreveu: [EMAIL PROTECTED] escreveu: O tópico em questão é sobre Controle de Estoque. Mas vi diversas manifestações que, creio, fogem um pouco a controle de Estoque, que seriam como vender, a quem vender, como comprar, de quem comprar. Apenas reforçando, já foi citado nesse mesmo tópico o Sistema Stoq que se propõe a fazer isso. Como o Riba falou, cuidado com a re-invenção da roda. Quem sabe, ao invés disso, o grupo de interessados poderia reunir esforços e ajudar no projeto já existente, já que o Stoq utiliza o nosso elefantinho e poderia ser uma boa forma de colocar em prática todo esse conhecimento aqui existente. Apenas uma opnião :) ___ 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: duplicar chave viola a restri ção de unicidade pg_statistic_relid_at t_index
Euler, desculpe mas estou terminando o processo de restauração mas vou te passar os logs dos processos que estavam em execução no momento que ocorreu a queda. Você prefere a versão 8.2.9 ao invés de 8.3? []s 2008/6/20 Euler Taveira de Oliveira [EMAIL PROTECTED]: Flávio Luiz Castro wrote: o problema é que estava em rotina de vacuum algumas coisas não foram possiveis de restaurar pois o pg_attribute, o pg_catalog também deram problema. O VACUUM *não* corrompe o catálogo. Podes ser mais claro? Se for problema de memória talvez você tenha perdido alguma informação no catálogo; isso não quer dizer que você não perderia informação se não estivesse executando o VACUUM. A versão atual é 8.2.4. ^^^ Atualize rapidamente para 8.2.9. -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- .~. / v \ Flávio Luiz Castro / ( _ )\ ^ ^ Linux Registered User: 347610 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Sp's
Tenho algumas SP's de um banco de dados que estão em desenvolvimento e eu preciso atualizar algumas bases de dados diferentes para testes. Porém, atualizar uma a uma manualmente em todas as bases é muito demorado e falho, visto que quem atualiza pode deixar passar alguma. Eu guardo essas SP's cada uma separada em um arquivo .sql, alguem sabe alguma forma de eu executar todos esses arquivos automaticamente por um script ou algo do tipo? Obrigada, Cris ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sp's
Caso seu ambiente seja linux, uma das possibilidades é usar o find com opção -exec para fazer o psql executar os mesmos. Ex.: find ~/sqlfunctions/ -name *.sql -exec psql -p 5432 -U postgres -h host {} \; 2008/6/25 Cristina Mangueira Rocha [EMAIL PROTECTED]: Tenho algumas SP's de um banco de dados que estão em desenvolvimento e eu preciso atualizar algumas bases de dados diferentes para testes. Porém, atualizar uma a uma manualmente em todas as bases é muito demorado e falho, visto que quem atualiza pode deixar passar alguma. Eu guardo essas SP's cada uma separada em um arquivo .sql, alguem sabe alguma forma de eu executar todos esses arquivos automaticamente por um script ou algo do tipo? Obrigada, Cris ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- William Leite Araújo Analista de Banco de Dados - QualiConsult ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] instalação tcl
alguém já conseguiu instalar pltcl no windows ? já tentei de tudo e nadapesquisei e não achei nada. setei o path, tentar criar na mão mas não obtive sucesso. o erro é o seguinte: ERROR: could not load library C:/Arquivos de programas/PostgreSQL/8.3/lib/pltcl.dll: unknown error 126 a dll está lá no caminho, já verifiquei... -- O temor do Senhor é o princípio do conhecimento; mas os insensatos desprezam a sabedoria e a instrução. Pv 1;7 Flávio Cardoso ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] INSERT SIMULTÂNEO
acho que q a dica do leo é bem mais simples usando o currval - Original Message - From: José Mello Júnior To: Comunidade PostgreSQL Brasileira Sent: Wednesday, June 25, 2008 11:35 AM Subject: Re: [pgbr-geral] INSERT SIMULTÂNEO Faça utilizando gatilho e se for o caso dentro da função gatilho (Triggers) você faz a chamada para a sequencia completando o registro da tabela A. []´s 2008/6/25 Vasco Antonio [EMAIL PROTECTED]: Bom dia lista, Seguinte, tenho duas tabelas A e B. Table A - id - (sequence) nome Tabela B - id - (sequence) obs idtba - FK Tenho um formulário onde é feita a entrada dos dados na tabela A, mas ao gravar os dados na mesma preciso fazer um insert na tabela B para informar um log e o id (FK) que foi gerado na sequence da tabela A. Como posso fazer isso direto no banco, visto que se fizer no código pegando último registro corro o risco de lincar dados de registros diferentes. Agradeço desde já a ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- José de Mello Júnior 41.9957-2007 -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Fwd: tabela com muitos updates
Ola pessoal, Tenho uma tabela com mutos updates diarios, na mesma linha e praticamente não ha muita inserção. Cada linha chega a ser atualizada mais de 1000 vezes por dia. Se eu estivesse utilizando um outro SGDB possivelmente isto não seria um problema chato, mas no Pg por conta de sua estratégia de atualizacao a tabela tende a ficar gigante, para termos uma ideia, a tabela qdo passo o vacuum tem cerca de 190Kb, depois de um dia de atualização alcança facilmente os 20Mb. Tenho um programa que fica rodando o vaccum todo dia a noite nesta tabela para manter a performance. A questão mesmo é: é possivel desabilitar este método ou usar outra tecnica para igual situação? O.o ... please dont blame me! :D heheheh serio, podem rir, mas há outra técnica ao menos? Valeu! Magno ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] comparando query
Pessoal Tenho uma query laza... em meu sistema que faz o seguinte: select count(*) as tam, max(connumero) as connumero from contrato inner join veiculo on conveioid=veioid inner join clientes cl on conclioid=cl.clioid where veichassi='9BFXCE2U98BB06345' and conclioid not in ( select clioid from clientes where (case when cl.clitipo = 'F' then clino_cpf else clino_cgc end) = '57468923' ); --Aggregate (cost=12362.10..12362.11 rows=1 width=4) select count(*) as tam, max(connumero) as connumero from contrato inner join veiculo on conveioid=veioid inner join clientes cl on conclioid=cl.clioid where veichassi='9BFXCE2U98BB06345' and conclioid not in ( select clioid from clientes where (clino_cpf = '57468922' or clino_cgc ='57468922') ); Aggregate (cost=15392.80..15392.81 rows=1 width=4) Eu testei algumas opcoes eu nao encontrei diferenca (a nao ser o custo) eu gostaria de confirmar essa informacoa c/ vcs. tipo, essas duas consultas fazem a mesma coisa, produzem o mesmo resultado. Obrigado. Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: tabela com muitos updates
Olá, Existe o processo de autovacuum. http://www.postgresql.org/docs/8.3/interactive/routine-vacuuming.html http://www.postgresql.org/docs/8.3/interactive/runtime-config-autovacuum.html []s 2008/6/25 Magno Lima [EMAIL PROTECTED]: Ola pessoal, Tenho uma tabela com mutos updates diarios, na mesma linha e praticamente não ha muita inserção. Cada linha chega a ser atualizada mais de 1000 vezes por dia. Se eu estivesse utilizando um outro SGDB possivelmente isto não seria um problema chato, mas no Pg por conta de sua estratégia de atualizacao a tabela tende a ficar gigante, para termos uma ideia, a tabela qdo passo o vacuum tem cerca de 190Kb, depois de um dia de atualização alcança facilmente os 20Mb. Tenho um programa que fica rodando o vaccum todo dia a noite nesta tabela para manter a performance. A questão mesmo é: é possivel desabilitar este método ou usar outra tecnica para igual situação? O.o ... please dont blame me! :D heheheh serio, podem rir, mas há outra técnica ao menos? Valeu! Magno ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres PostgreSQL ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sp's
ERRATA! Não é possível usar o operador bash ''. Para funcionar, use a opção '-f' do psql. O comando fica da seguinte forma: *find ~/sqlfunctions/ -name *.sql -exec psql -p 5432 -U postgres -h host -f {} \; * 2008/6/25 William Leite Araújo [EMAIL PROTECTED]: Caso seu ambiente seja linux, uma das possibilidades é usar o find com opção -exec para fazer o psql executar os mesmos. Ex.: find ~/sqlfunctions/ -name *.sql -exec psql -p 5432 -U postgres -h host {} \; 2008/6/25 Cristina Mangueira Rocha [EMAIL PROTECTED]: Tenho algumas SP's de um banco de dados que estão em desenvolvimento e eu preciso atualizar algumas bases de dados diferentes para testes. Porém, atualizar uma a uma manualmente em todas as bases é muito demorado e falho, visto que quem atualiza pode deixar passar alguma. Eu guardo essas SP's cada uma separada em um arquivo .sql, alguem sabe alguma forma de eu executar todos esses arquivos automaticamente por um script ou algo do tipo? Obrigada, Cris ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- William Leite Araújo Analista de Banco de Dados - QualiConsult -- William Leite Araújo Analista de Banco de Dados - QualiConsult ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] comparando query
2008/6/25 Mr J.L. [EMAIL PROTECTED]: Eu testei algumas opcoes eu nao encontrei diferenca (a nao ser o custo) eu gostaria de confirmar essa informacoa c/ vcs. tipo, essas duas consultas fazem a mesma coisa, produzem o mesmo resultado. Supondo que os dados estejam consistentes, sim. Mais um exemplo de falta de normalização que confunde o usuário. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: tabela com muitos updates
2008/6/25 Magno Lima [EMAIL PROTECTED]: Tenho um programa que fica rodando o vaccum todo dia a noite nesta tabela para manter a performance. A questão mesmo é: é possivel desabilitar este método ou usar outra tecnica para igual situação? O.o ... please dont blame me! :D heheheh serio, podem rir, mas há outra técnica ao menos? Que tal fazer isso mais freqüentemente? -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] comparando query
Segate, ambas dão o mesmo resultado, mas o select dentro da clausula not in() consulta colunas diferentes o custo vai ser diferente mesmo... Eu não utilizo count(*), sempre uso count() de uma coluna que retorna da consulta. Adriano 2008/6/25 Mr J.L. [EMAIL PROTECTED]: Pessoal Tenho uma query laza... em meu sistema que faz o seguinte: select count(*) as tam, max(connumero) as connumero from contrato inner join veiculo on conveioid=veioid inner join clientes cl on conclioid=cl.clioid where veichassi='9BFXCE2U98BB06345' and conclioid not in ( select clioid from clientes where (case when cl.clitipo = 'F' then clino_cpf else clino_cgc end) = '57468923' ); --Aggregate (cost=12362.10..12362.11 rows=1 width=4) select count(*) as tam, max(connumero) as connumero from contrato inner join veiculo on conveioid=veioid inner join clientes cl on conclioid=cl.clioid where veichassi='9BFXCE2U98BB06345' and conclioid not in ( select clioid from clientes where (clino_cpf = '57468922' or clino_cgc ='57468922') ); Aggregate (cost=15392.80..15392.81 rows=1 width=4) Eu testei algumas opcoes eu nao encontrei diferenca (a nao ser o custo) eu gostaria de confirmar essa informacoa c/ vcs. tipo, essas duas consultas fazem a mesma coisa, produzem o mesmo resultado. Obrigado. Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] [Bulk] Fwd: tabela com muitos updates
Olá, Fiquei confuso. O que não existe mais na versão do PostgreSQL? o autovacuum? []s 2008/6/25 Shander Lyrio [EMAIL PROTECTED]: Acredito, pelo que li no release notes do PostgreSql 8.3, que isto não existe mais nesta versão. Vale dar uma conferida, -- Shander Lyrio Magno Lima escreveu: Ola pessoal, Tenho uma tabela com mutos updates diarios, na mesma linha e praticamente não ha muita inserção. Cada linha chega a ser atualizada mais de 1000 vezes por dia. Se eu estivesse utilizando um outro SGDB possivelmente isto não seria um problema chato, mas no Pg por conta de sua estratégia de atualizacao a tabela tende a ficar gigante, para termos uma ideia, a tabela qdo passo o vacuum tem cerca de 190Kb, depois de um dia de atualização alcança facilmente os 20Mb. Tenho um programa que fica rodando o vaccum todo dia a noite nesta tabela para manter a performance. A questão mesmo é: é possivel desabilitar este método ou usar outra tecnica para igual situação? O.o ... please dont blame me! :D heheheh serio, podem rir, mas há outra técnica ao menos? Valeu! Magno ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres PostgreSQL ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Como fazer esta consulta?
Seguinte Eu estou tentando fazer uma consulta que retorna o número de participações de um cliente no meu site... Vou abstrair um pouco, mas é mais ou menos isso Tenho uma tabela de clientes com as colunas ROWID e NOME... Tenho três outras tabelas, cada uma tem ROWID, IDUSUARIO, CONTEUDO.. Sendo IDUSUARIO chave estrangeira para o ROWID da tabela de cliente... Supondo que um cliente pode ter entradas nas três tabelas, em duas, em apenas uma ou até em nenhuma. Gostaria de saber quantas entradas cada usuário tem, somando as entradas nas 3 tabelas... Ou seja, a saída seria algo como: NOME (ou ROWID) | COUNT(*) -+- joao (ou 1) | 97 mario (ou 5) | 90 wagner (ou 10) | 38 Bom, acho que deu pra entender a idéia... Alguém sabe como consigo fazer isso? Já tentei usando LEFT OUTER JOIN e não consegui... A consulta que eu fiz foi: SELECT USU.rowid, USU.nome, ( count(C1.idusuario) + count(C2.idusuario) + count(C3.idusuario) ) AS RANK FROM usuarios USU LEFT OUTER JOIN conteudo1 C1 ON (USU.rowid = C1.idusuario) LEFT OUTER JOIN conteudo2 C2 ON ( USU.rowid = C2.idusuario ) LEFT OUTER JOIN conteudo3 C3 ON ( USU.rowid = C3.idusuario ) GROUP BY USU.rowid, USU.nome, C1.idusuario, C2.idusuario, C2.idusuario ORDER BY RANK DESC LIMIT 10; Valeu... Wagner Mariotto Bonfiglio ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Usar 1 Join ou 2 selects para retornar 1 valor?
Blz galera? Tenho as seguintes tabela de exemplo: T1: id, nome T2: id, id_t1 Caso eu precise de 1 valor do campo nome da tabela T1 da relação com T2 seria melhor utilizar 2 selects ao invés de 1 join? Por exemplo: SELECT nome FROM t1 WHERE id = (SELECT id_t1 FROM t2 WHERE id = 123 LIMIT 1); Ou fazer com join: SELECT t1.nome FROM t2 INNER JOIN t2 ON t1.id = t2.id_t1 WHERE t2.id = 123; Qual método seria melhor já que eu preciso retornar apenas 1 valor? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] [Bulk] Fwd: tabela com muitos updates
O problema apresentado pelo colega. Veja em [1] e pesquise FILLFACTOR. Como não fiz testes ainda, não sei se ele vai sempre tentar gravar na mesma página de dados, ou se após preenchido o espaço reservado para atualizações ele volta a criar novas páginas. [1] http://www.postgresql.org/docs/8.3/interactive/sql-createtable.html Abraço, -- Shander Lyrio jota.comm escreveu: Olá, Fiquei confuso. O que não existe mais na versão do PostgreSQL? o autovacuum? []s 2008/6/25 Shander Lyrio [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]: Acredito, pelo que li no release notes do PostgreSql 8.3, que isto não existe mais nesta versão. Vale dar uma conferida, -- Shander Lyrio Magno Lima escreveu: Ola pessoal, Tenho uma tabela com mutos updates diarios, na mesma linha e praticamente não ha muita inserção. Cada linha chega a ser atualizada mais de 1000 vezes por dia. Se eu estivesse utilizando um outro SGDB possivelmente isto não seria um problema chato, mas no Pg por conta de sua estratégia de atualizacao a tabela tende a ficar gigante, para termos uma ideia, a tabela qdo passo o vacuum tem cerca de 190Kb, depois de um dia de atualização alcança facilmente os 20Mb. Tenho um programa que fica rodando o vaccum todo dia a noite nesta tabela para manter a performance. A questão mesmo é: é possivel desabilitar este método ou usar outra tecnica para igual situação? O.o ... please dont blame me! :D heheheh serio, podem rir, mas há outra técnica ao menos? Valeu! Magno ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br mailto:pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br mailto:pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres http://www.dextra.com.br/postgres PostgreSQL ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] [Bulk] Fwd: tabela com muitos updates
Shander Lyrio wrote: Acredito, pelo que li no release notes do PostgreSql 8.3, que isto não existe mais nesta versão. Acho que você está confundindo as coisas. O MVCC [1] sempre existirá no PostgreSQL (a não ser que boa parte do código seja reescrito -- o que eu acho difícil). E quanto ao HOT eu aconselho que você veja [2]. [1] http://en.wikipedia.org/wiki/Multiversion_concurrency_control [2] http://listas.postgresql.org.br/pipermail/pgbr-geral/2008-May/008976.html -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] comparando query
Mr J.L. wrote: Eu testei algumas opcoes eu nao encontrei diferenca (a nao ser o custo) eu gostaria de confirmar essa informacoa c/ vcs. tipo, essas duas consultas fazem a mesma coisa, produzem o mesmo resultado. EXPLAIN ANALYZE de ambas consultas? As duas subconsultas tem planos de execução diferentes; e a segunda consulta é a que retorna um resultado melhor. -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Usar 1 Join ou 2 selects para retornar 1 valor?
Olá, Use um join. []s 2008/6/25 Yoshio [EMAIL PROTECTED]: Blz galera? Tenho as seguintes tabela de exemplo: T1: id, nome T2: id, id_t1 Caso eu precise de 1 valor do campo nome da tabela T1 da relação com T2 seria melhor utilizar 2 selects ao invés de 1 join? Por exemplo: SELECT nome FROM t1 WHERE id = (SELECT id_t1 FROM t2 WHERE id = 123 LIMIT 1); Ou fazer com join: SELECT t1.nome FROM t2 INNER JOIN t2 ON t1.id = t2.id_t1 WHERE t2.id = 123; Qual método seria melhor já que eu preciso retornar apenas 1 valor? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres PostgreSQL ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Usar 1 Join ou 2 selects para retornar 1 valor?
Olá, Ou ainda utilize o explain para o custo das consultas. []s 2008/6/25 jota. comm [EMAIL PROTECTED]: Olá, Use um join. []s 2008/6/25 Yoshio [EMAIL PROTECTED]: Blz galera? Tenho as seguintes tabela de exemplo: T1: id, nome T2: id, id_t1 Caso eu precise de 1 valor do campo nome da tabela T1 da relação com T2 seria melhor utilizar 2 selects ao invés de 1 join? Por exemplo: SELECT nome FROM t1 WHERE id = (SELECT id_t1 FROM t2 WHERE id = 123 LIMIT 1); Ou fazer com join: SELECT t1.nome FROM t2 INNER JOIN t2 ON t1.id = t2.id_t1 WHERE t2.id = 123; Qual método seria melhor já que eu preciso retornar apenas 1 valor? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- João Paulo www.dextra.com.br/postgres PostgreSQL -- João Paulo www.dextra.com.br/postgres PostgreSQL ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como fazer esta consulta?
2008/6/25 Wagner Bonfiglio [EMAIL PROTECTED]: Tenho uma tabela de clientes com as colunas ROWID e NOME... Primeira coisa: tenha chaves de verdade. Se nome não pode ser chave, ao menos transforme rowid num CREATE DOMAIN com um nome mais significativo. Depois: SELECT COUNT (*) FROM (SELECT ... UNION SELECT ... UNION ...) -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Usar 1 Join ou 2 selects para retornar 1 valor?
2008/6/25 Yoshio [EMAIL PROTECTED]: T1: id, nome T2: id, id_t1 Nossa, todo mundo com exemplos parecidos. Então é a terceira vez que escrevo hoje. Você precisa duma chave natural. Se nome (por exemplo) não pode ser, pelo menos dê um CREATE DOMAIN id_t1 e use isso, em vez de simplesmente id. Por exemplo: SELECT nome FROM t1 WHERE id = (SELECT id_t1 FROM t2 WHERE id = 123 LIMIT 1); Ou fazer com join: SELECT t1.nome FROM t2 INNER JOIN t2 ON t1.id = t2.id_t1 WHERE t2.id = 123; A junção é mais fácil de entender, mas confira o plano de execução se tua questão for desempenho. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral