Re: [pgbr-geral] Duvidas OID
Olá, Quanto aos oids de tabelas de usuário elas vem desabilitadas a partir da versão 8.1. Se você usar os oids nas tabelas sempre que você realizar um procedimento de backup e depois for restaurar o banco, novos oids serão gerados ao realizar o processo de importação, a não ser que você especifique a opção -o para gerar o dump com os oids. E com relação ao seu uso, sinceramente eu não vejo um uso prático deles em tabelas de usuário. 2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com Olá a todos, Me desculpem a ignorancia, pois estou começando agora com PostGres. É que eu precisava saber as implicações de usar ou não o OID nas tabelas. Desde de já agradeço a atenção []s Marcelo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com 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] Duvidas OID
2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com: Me desculpem a ignorancia, pois estou começando agora com PostGres. É que eu precisava saber as implicações de usar ou não o OID nas tabelas. Do manual: http://www.postgresql.org/docs/current/interactive/datatype-oid.html The oid type is currently implemented as an unsigned four-byte integer. Therefore, it is not large enough to provide database-wide uniqueness in large databases, or even in large individual tables. So, using a user-created table's OID column as a primary key is discouraged. OIDs are best used only for references to system tables. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
Primeiramente obrigado, No caso é que tenho uma aplicação que precisa saber o ultimo inser da conexao com o banco. A aplicação este em PHP. 2009/6/5 JotaComm jota.c...@gmail.com Olá, Quanto aos oids de tabelas de usuário elas vem desabilitadas a partir da versão 8.1. Se você usar os oids nas tabelas sempre que você realizar um procedimento de backup e depois for restaurar o banco, novos oids serão gerados ao realizar o processo de importação, a não ser que você especifique a opção -o para gerar o dump com os oids. E com relação ao seu uso, sinceramente eu não vejo um uso prático deles em tabelas de usuário. 2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com Olá a todos, Me desculpem a ignorancia, pois estou começando agora com PostGres. É que eu precisava saber as implicações de usar ou não o OID nas tabelas. Desde de já agradeço a atenção []s Marcelo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com 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 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com: No caso é que tenho uma aplicação que precisa saber o ultimo inser da conexao com o banco. A aplicação este em PHP. Se for na mesma conexão considere o uso da cláusula RETURNING do camando INSERT. http://www.postgresql.org/docs/current/interactive/sql-insert.html De uma forma geral é provável que um campo timestamp com default CURRENT_TIMESTAMP em sua(s) tabela(s) atenda suas necessidades. Como já foi dito quando sua instalação consumir cerca de 4GB oids ele retornará para o início, isto é, não se pode garantir que o último insert realizado tenha o maior oid. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com Se for na mesma conexão considere o uso da cláusula RETURNING do camando INSERT. http://www.postgresql.org/docs/current/interactive/sql-insert.html De uma forma geral é provável que um campo timestamp com default CURRENT_TIMESTAMP em sua(s) tabela(s) atenda suas necessidades. Como já foi dito quando sua instalação consumir cerca de 4GB oids ele retornará para o início, isto é, não se pode garantir que o último insert realizado tenha o maior oid. Osvaldo Osvaldo, Já falamos a respeito deste assunto. E a sua ideia para o CURRENT_TIMESTAMP, realmente se torna bem mais agradavel do que OID. Mas no caso gostaria de abusar um pouco da vontade dos amigos. Seria possivel utilizar o CURRENT_TIMESTAMP, como padrão do campo, mas eliminando os pontos, traços e espaço. Algo do tipo: arb_id limpacampo(CURRENT_TIMESTAMP) NOT NULL, -- Identificador do Registro Ou teria que criar uma trigger?? -- []s Nilson Chagas - Ubuntu User 25794 --- Visite: http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico http://tempodesalvacao.blogspot.com/ http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com: 2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com Se for na mesma conexão considere o uso da cláusula RETURNING do camando INSERT. http://www.postgresql.org/docs/current/interactive/sql-insert.html De uma forma geral é provável que um campo timestamp com default CURRENT_TIMESTAMP em sua(s) tabela(s) atenda suas necessidades. Como já foi dito quando sua instalação consumir cerca de 4GB oids ele retornará para o início, isto é, não se pode garantir que o último insert realizado tenha o maior oid. Osvaldo Osvaldo, Já falamos a respeito deste assunto. E a sua ideia para o CURRENT_TIMESTAMP, realmente se torna bem mais agradavel do que OID. Mas no caso gostaria de abusar um pouco da vontade dos amigos. Seria possivel utilizar o CURRENT_TIMESTAMP, como padrão do campo, mas eliminando os pontos, traços e espaço. Algo do tipo: arb_id limpacampo(CURRENT_TIMESTAMP) NOT NULL, -- Identificador do Registro Ou teria que criar uma trigger?? -- Não entendi sua questão. O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja: http://www.postgresql.org/docs/current/interactive/datatype-datetime.html Ele ocupa 8 bytes e é uma data juliana. Talvez você esteja confundindo a forma de armazenamento com a forma de exibição. Pontos, traços e espaços só existem na forma de exibição, não existem no dado armazenado em seu banco. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com Não entendi sua questão. O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja: http://www.postgresql.org/docs/current/interactive/datatype-datetime.html Ele ocupa 8 bytes e é uma data juliana. Talvez você esteja confundindo a forma de armazenamento com a forma de exibição. Pontos, traços e espaços só existem na forma de exibição, não existem no dado armazenado em seu banco. Osvaldo ___ Devo estar confundindo mesmo, mas quando dou um select ou mesmo no pgAdmin mando abrir o banco ele me retorna: 2009-06-05 12:43:58.019381 Eu gostaria que esta informação não tivesse os traços, ponto e espaço, quando eu requisitasse o conteudo. -- []s Nilson Chagas - Ubuntu User 25794 --- Visite: http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico http://tempodesalvacao.blogspot.com/ http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
Olá, Para isso você pode usar a função to_char: SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISS'); 2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com 2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com Não entendi sua questão. O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja: http://www.postgresql.org/docs/current/interactive/datatype-datetime.html Ele ocupa 8 bytes e é uma data juliana. Talvez você esteja confundindo a forma de armazenamento com a forma de exibição. Pontos, traços e espaços só existem na forma de exibição, não existem no dado armazenado em seu banco. Osvaldo ___ Devo estar confundindo mesmo, mas quando dou um select ou mesmo no pgAdmin mando abrir o banco ele me retorna: 2009-06-05 12:43:58.019381 Eu gostaria que esta informação não tivesse os traços, ponto e espaço, quando eu requisitasse o conteudo. -- []s Nilson Chagas - Ubuntu User 25794 --- Visite: http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico http://tempodesalvacao.blogspot.com/ http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com 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] Duvidas OID
2009/6/5 JotaComm jota.c...@gmail.com Olá, Para isso você pode usar a função to_char: SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISS'); Eu não estou em casa agora para testar, mas como ficaria o restante dos dados?? 2009-06-05 12:43:58*.019381 * -- []s Nilson Chagas - Ubuntu User 25794 --- Visite: http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico http://tempodesalvacao.blogspot.com/ http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
Olá, Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no final, depois do SS. Por exemplo: SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS'); 2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com 2009/6/5 JotaComm jota.c...@gmail.com Olá, Para isso você pode usar a função to_char: SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISS'); Eu não estou em casa agora para testar, mas como ficaria o restante dos dados?? 2009-06-05 12:43:58*.019381 * -- []s Nilson Chagas - Ubuntu User 25794 --- Visite: http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico http://tempodesalvacao.blogspot.com/ http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com 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] Duvidas OID
2009/6/5 JotaComm jota.c...@gmail.com Olá, Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no final, depois do SS. Por exemplo: SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS'); Legal, chegando em casa vou testar. No caso posso criar um trigger no before insert e gravar to_char(current_timestamp,'MMDDHHMISSUS') Pq se eu não já gravar sem a pontuação, vai ficar ruim manipular depois. -- []s Nilson Chagas - Ubuntu User 25794 --- Visite: http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico http://tempodesalvacao.blogspot.com/ http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com: 2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com Não entendi sua questão. O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja: http://www.postgresql.org/docs/current/interactive/datatype-datetime.html Ele ocupa 8 bytes e é uma data juliana. Talvez você esteja confundindo a forma de armazenamento com a forma de exibição. Pontos, traços e espaços só existem na forma de exibição, não existem no dado armazenado em seu banco. Osvaldo ___ Devo estar confundindo mesmo, mas quando dou um select ou mesmo no pgAdmin mando abrir o banco ele me retorna: 2009-06-05 12:43:58.019381 Eu gostaria que esta informação não tivesse os traços, ponto e espaço, quando eu requisitasse o conteudo. A forma de exibição padrão de campos date e timestamp é definida no parâmetro de configuração DateStyle. Veja: http://www.postgresql.org/docs/current/interactive/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-FORMAT De acordo com o que você informou acima seu servidor está configurado para ISO. Você pode modificar a forma padrão com que o PostgreSQL irá exibir seus campos DATE e TIMESTAMP, bem como a forma como ele deve interpretar uma string contendo uma data, modificando este parâmetro (DateStyle). Veja as opções em 8.5.2. Date/Time Output: http://www.postgresql.org/docs/current/interactive/datatype-datetime.html Agora para manter total controle sobre a forma com que deseja exibir seu campo date ou timestamp siga o conselho do Jota e utilize a função to_char. Para controlar como interpretar corretamente um string contendo uma data ou instante de tempo utilize a função to_date. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com: 2009/6/5 JotaComm jota.c...@gmail.com Olá, Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no final, depois do SS. Por exemplo: SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS'); Legal, chegando em casa vou testar. No caso posso criar um trigger no before insert e gravar to_char(current_timestamp,'MMDDHHMISSUS') Pq se eu não já gravar sem a pontuação, vai ficar ruim manipular depois. NÃO! O PostgreSQL não grava esta string em seu banco. Ele grava um campo de 8 bytes contendo o número de microssegundos que seu instante de tempo dista de meia-noite de 01 de janeiro de 2000 (se for negativo é anterior, se positivo posterior). Você exibe este dado ou da forma padrão - definida no parâmetro de configuração DateStyle - ou da forma que quiser utilizando a função to_char. Esta é apenas uma questão de exibição do dado armazenado isto é, como converter aquele dado em uma string legível por humanos. Por analogia imagine o conteúdo de um byte. Eu posso exibi-lo como um número decimal, um número binário ou um número hexadecimal. O conteúdo é o mesmo apenas a forma de exibição é diferente. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas OID
2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com 2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com: 2009/6/5 JotaComm jota.c...@gmail.com Olá, Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no final, depois do SS. Por exemplo: SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS'); Legal, chegando em casa vou testar. No caso posso criar um trigger no before insert e gravar to_char(current_timestamp,'MMDDHHMISSUS') Pq se eu não já gravar sem a pontuação, vai ficar ruim manipular depois. NÃO! O PostgreSQL não grava esta string em seu banco. Ele grava um campo de 8 bytes contendo o número de microssegundos que seu instante de tempo dista de meia-noite de 01 de janeiro de 2000 (se for negativo é anterior, se positivo posterior). Você exibe este dado ou da forma padrão - definida no parâmetro de configuração DateStyle - ou da forma que quiser utilizando a função to_char. Esta é apenas uma questão de exibição do dado armazenado isto é, como converter aquele dado em uma string legível por humanos. Por analogia imagine o conteúdo de um byte. Eu posso exibi-lo como um número decimal, um número binário ou um número hexadecimal. O conteúdo é o mesmo apenas a forma de exibição é diferente. Osvaldo rsrsrsrs É a preguiça de ficar lembrando de usar o to_char. rsrsrs Mas ainda é melhor do que ficar mudando a configuração de todo o banco, mais garantido. Já peguei a idéia, vou colocar em pratica. Neste caso é só informar o current_timestamp como default do campo, sem precisar gastar linhas com trigger. -- []s Nilson Chagas - Ubuntu User 25794 --- Visite: http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico http://tempodesalvacao.blogspot.com/ http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral