13 puntos por xguru 2021-11-10 | 4 comentarios | Compartir por WhatsApp
  • Cómo saber cuántas filas se modificaron/agregaron en Insert on Conflict (Upsert): xmax

  • Otorgar permisos a una columna específica

  • Coincidencia con múltiples patrones: SIMILAR TO o regex ~

  • Consultar el valor actual de una secuencia sin incrementarlo: pg_sequence_last_value()

  • Para usar SQL multilínea junto con \\COPY: TEMPORARY VIEW o usar COPY con \\g

  • Evitar asignar valores a claves generadas automáticamente: especificar GENERATED ALWAYS al crear la tabla (en lugar de GENERATED BY DEFAULT)

  • Crear tablas dinámicas: usar pandas.pivot_table, \\crosstabview o la extensión tablefunc

  • Dollar Quoting

→ Todo lo que esté entre $$ y $$ se interpreta como una cadena

→ Se puede usar una etiqueta interna como $JSON$ / $function$

→ Si se agrega ::jsonb, se puede crear rápidamente un objeto jsonb

  • Agregar comentarios a objetos de la BD: COMMENT ON TABLE/COLUMN, también se puede usar Dollar Quoting para añadir descripciones largas en texto

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

→ Ver: \\d+ sale

  • Registrar el historial por separado para cada BD

\\set HISTFILE ~/.psql_history- :DBNAME

  • Poner el autocompletado en mayúsculas: \\set COMP_KEYWORD_CASE upper

  • Hacer una pausa: pg_sleep(segundos), pg_sleep_for('4 minutes 14 seconds')

  • Obtener la primera/última fila de un grupo sin subconsulta: DISTINCT ON (columna_del_grupo)

  • Generar UUID sin la extensión uuid-ossp: gen_random_uuid() genera un UUID versión 4

  • Generar datos aleatorios reproducibles: usar la misma semilla con setseed()

  • Agregar una restricción sin validar de inmediato los datos existentes: al hacer ALTER, primero agregar la restricción con NOT VALID y luego validar los datos existentes por separado con ALTER VALIDATE

  • Usar una función similar a Synonym de Oracle: cambiar search_path (útil en migraciones sin tiempo de inactividad)

  • Encontrar rangos superpuestos: operador OVERLAPS

4 comentarios

 
galadbran 2021-11-11

¿No será que en GeekNews están subiendo demasiadas noticias sobre postgres? (Es broma.)

Nuestro producto también usa principalmente pg, así que solo podemos estar agradecidos. :)

 
xguru 2021-11-11

¡Es porque postgres está de moda estos días...!?

 
nallwhy 2021-11-10

Postgres es lo máximo.

 
roxie 2021-11-10

Estoy de acuerdo.