Funciones poco conocidas de PostgreSQL
(hakibenita.com)-
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 TOo regex~ -
Consultar el valor actual de una secuencia sin incrementarlo:
pg_sequence_last_value() -
Para usar SQL multilínea junto con
\\COPY:TEMPORARY VIEWo usarCOPYcon\\g -
Evitar asignar valores a claves generadas automáticamente: especificar
GENERATED ALWAYSal crear la tabla (en lugar deGENERATED BY DEFAULT) -
Crear tablas dinámicas: usar
pandas.pivot_table,\\crosstabviewo la extensióntablefunc -
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 conNOT VALIDy luego validar los datos existentes por separado conALTER 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
¿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. :)
¡Es porque postgres está de moda estos días...!?
Postgres es lo máximo.
Estoy de acuerdo.