En Postrges, sé cómo crear una tabla con una columna que tiene una identificación de serie (número):
CREATE TABLE Tag ( id SERIAL PRIMARY KEY, name TEXT NOT NULL ); Sin embargo, prefiero que mis identificaciones tengan un aspecto legible por humanos. Usualmente hago algo como tag_1, tag_2, tag_3 usr_1, usr_2, usr_3 .
He visto instrucciones sobre cómo generar uuids (¿ Generar un UUID en Postgres para la instrucción Insertar? ), pero realmente no necesito eso. El número de serie básico es más que suficiente, solo quiero agregar el prefijo tag_ al principio.
¿Cómo puedo crear una ID de serie con una cadena con un prefijo común?
Puede hacerlo con una secuencia, que puede agregar a su tabla como un valor predeterminado concatenado a través de || con el prefijo que quieras por ejemplo
CREATE SEQUENCE tag_seq START WITH 1; CREATE TABLE tag (id TEXT NOT NULL DEFAULT 'tag_'||nextval('tag_seq'::regclass), name TEXT); INSERT INTO tag (name) VALUES ('foo'),('bar'); SELECT * FROM tag; id | name -------+------ tag_1 | foo tag_2 | bar (2 Zeilen) Demostración: db<>fiddle