Chaves artificiais no PostgreSQL

Criar chaves artificiais virou um vício com o advento das ferramentas de ORM. Mesmo antes delas, as chaves artificiais já existiam e temos bons motivos (e maus motivos também) para adota-las. Existem várias formas de criar uma chave artificial. No PostgreSQL temos duas bastante utilizadas. Uma utiliza as sequências, para gerar números sequenciais. Note que

Removendo registros idênticos no PostgreSQL

Eu sei, em teoria toda tabela deveria ter uma chave primaria e registros jamais poderiam ser duplicados. Mas a vida é uma caixinha de surpresas…. em algumas situações bem peculiares, você pode precisar de uma tabela sem uma PK, como numa área intermediária para a carga de dados. Estes dias a pergunta aparecer na lista

SQL = papel & tinta

Hoje eu me deparei com uma pessoa que perguntava sobre uma ferramenta para ajudar a escrever consultas SQL graficamente. Estava quase respondendo o cara quando lembrei que um dia eu já fui assim. O primeiro banco de dados relacional com qual eu já trabalhei foi o Access 2.0. Sim senhores, eu já fiz isso, há

PostgreSQL fillfactor

Precisei fazer uma prova simples para um cliente para mostrar como o parâmetro de storage FILLFACTOR afeta uma tabela e como verificar a sua eficiência. Toda vez que um UPDATE é executado no PostgreSQL, ele marca a tupla atualizada para remoção posterior e cria um novo registro. Porém, se no bloco onde o dado está

Gerando valores aleatórios no PostgreSQL, ou quase…

Em homenagem à Megasena acumulada que eu não ganhei… uma pequena brincadeira no PostgreSQL, gerando números, datas, caracteres e pedaços de textos –Um número randomico de 0 a 1 =# SELECT random() n; n ——————- 0.210320219863206 — Um número inteiro de 0 a 100 =# SELECT round(random() * 100) n; n —- 32 –Uma data

Gerando o DDL de todas as views de um esquema no PostgreSQL

Atendendo a pedidos, segue um formato fácil para gerar um DDL de todas as views de um esquema específico no PostgreSQL. Na verdade está tudo pronto em pg_views, mas desta forma fica tudo num único arquivo bem formatado: a t o views_schema_xyz.sql — Gera DDL SELECT ‘– DDL da view ‘ || schemaname || ‘.’

Zerando Large Objects numa base PostgreSQL

Se tem uma coisa que eu realmente não recomendo é sair guardando zilhões de imagens dentro do banco de dados. Uma vez ou outra vá lá… se as imagens forem poucas e pequenas. Bom, mas sabe aquela coisa desenvolvida há décadas, com zilhões de otimizações, pesquisas e intermináveis discussões para se chegar num produto ótimo

Movendo objetos no Postgres

Quando você cria um objeto seja ele uma tabela, visão, função, etc, a não ser que você especifique o contrário, ele vai ser criado no esquema ‘public’, no tablespace ‘pg_default’ e o dono do objeto será o ‘postgres’. Dependendo da aplicação, não há nenhum problema nisso. Sério, existem aplicações que funcionam muito bem com este

LIMIT e OFFSET no Oracle

Outra coisa pentelha no Oracle, fazer paginação de registros. Não, o Oracle não tem as cláusulas LIMIT e OFFSET. Elas são utilizadas no PostgreSQL e no MySQL. O padrão SQL 2008 estabelece o uso do OFFSET e FETCH, utilizado pelo DB2, MS SQL Server e também pelo PostgreSQL. Já o Oracle… bom o Oracle só