13 pontos por xguru 2021-11-10 | 4 comentários | Compartilhar no WhatsApp
  • Saber o número de linhas modificadas/adicionadas em um Insert on Conflict (Upsert): xmax

  • Conceder permissão a uma coluna específica

  • Correspondência de múltiplos padrões: SIMILAR TO ou regex ~

  • Descobrir o valor atual de uma sequência sem incrementá-la: pg_sequence_last_value()

  • Para usar SQL multilinha junto com \\COPY: TEMPORARY VIEW ou usar COPY com \\g

  • Impedir definir valores em chaves geradas automaticamente: especificar GENERATED ALWAYS ao criar a tabela (em vez de GENERATED BY DEFAULT)

  • Criar tabela dinâmica: usar pandas.pivot_table, \\crosstabview ou a extensão tablefunc

  • Dollar Quoting

 → todo o texto entre $$ e $$ é tratado como string

 → também é possível usar tags internas, como $JSON$ / $function$

 → ao adicionar ::jsonb, é possível criar rapidamente um objeto jsonb

  • Adicionar comentários a objetos do DB: COMMENT ON TABLE/COLUMN; também é possível usar Dollar Quoting para adicionar descrições longas em string

 → escrever: COMMENT ON TABLE sale IS 'Sales made in the system';

 → ver: \\d+ sale

  • Registrar o histórico separadamente por banco de dados

 → \\set HISTFILE ~/.psql_history- :DBNAME

  • Fazer o autocomplete usar maiúsculas: \\set COMP_KEYWORD_CASE upper

  • Inserir espera: pg_sleep(segundos), pg_sleep_for('4 minutes 14 seconds')

  • Obter a primeira/última linha de um grupo sem subconsulta: DISTINCT ON (coluna_do_grupo)

  • Gerar UUID sem a extensão uuid-ossp: gen_random_uuid() gera um UUID versão 4

  • Gerar dados aleatórios reproduzíveis: usar a mesma seed com setseed()

  • Adicionar restrições sem validar imediatamente os dados existentes: ao usar ALTER, primeiro adicionar apenas a restrição com NOT VALID e depois validar os dados existentes separadamente com ALTER VALIDATE

  • Usar um recurso semelhante ao Synonym do Oracle: alterar search_path (útil em Zero Downtime Migration)

  • Encontrar ranges sobrepostos: operador OVERLAPS

4 comentários

 
galadbran 2021-11-11

No GeekNews, será que não estão saindo notícias demais sobre postgres? (Brincadeira.)

Nosso produto também usa pg principalmente, então só temos a agradecer. :)

 
xguru 2021-11-11

É porque o postgres está super em alta ultimamente..!?

 
nallwhy 2021-11-10

postgres é o melhor

 
roxie 2021-11-10

Concordo.