Recursos pouco conhecidos do PostgreSQL
(hakibenita.com)-
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 TOou regex~ -
Descobrir o valor atual de uma sequência sem incrementá-la:
pg_sequence_last_value() -
Para usar SQL multilinha junto com
\\COPY:TEMPORARY VIEWou usarCOPYcom\\g -
Impedir definir valores em chaves geradas automaticamente: especificar
GENERATED ALWAYSao criar a tabela (em vez deGENERATED BY DEFAULT) -
Criar tabela dinâmica: usar
pandas.pivot_table,\\crosstabviewou a extensãotablefunc -
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 comNOT VALIDe depois validar os dados existentes separadamente comALTER 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
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. :)
É porque o postgres está super em alta ultimamente..!?
postgres é o melhor
Concordo.