Tendría que devolver la parte necesaria para identificar de forma única la fila, incluso si una declaración de selección no devolviera todas las filas, por supuesto, para ser de alguna utilidad. Y no estoy seguro de cómo funcionaría si la columna uuid no fuera parte de un pk/index y se repitiera.
¿Existe esto?
Creo que tendría que decidir qué constituye identificable de forma única asumiendo que varios lugares de la derecha lo hacen identificable de forma única. Creo que esto es una locura, pero la forma en que lo harías es algo como esto:
SELECT RIGHT(uuid_column_name::text, 7) as your_truncated_uuid FROM table_with_uuid_column;Eso toma los 7 lugares desde la derecha del valor de texto de la columna uuid.
No no hay. Un UUID es una representación hexadecimal de un número aleatorio de 120 bits, al menos la variante v4. Ni siquiera se garantiza que sea único, aunque es probable que lo sea.
Tienes algunas opciones para implementar esto:
d8366842-8c1d-4a31-a4c0-f1765b8ab108 d8366842 , tiene 16**8 combinaciones posibles, o 4,294,967,296. ¿Cuál es la probabilidad de que su conjunto de datos tenga una colisión con 4200 millones (2**32) de posibilidades? Quizás pueda agregar 8c1d nuevamente para que sea 16 ** 12 o 28,147,497,6710,656 posibilidades.Dicho todo esto, otra idea es usar ints y no uuids y luego usar http://hashids.org/ que tiene un complemento para PostgreSQL. Este es el método que usa YouTube afaik.