database·1 min de leitura
Como criar um ID aleatório customizado no Postgres
Função auxiliar para criar um ID aleatório customizado como a9Kl12

Crie uma função:
CREATE OR REPLACE FUNCTION generate_random_id(length integer)
RETURNS text AS $$
DECLARE
alphabet text;
id text := '';
i integer;
BEGIN
alphabet := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
FOR i IN 1..length LOOP
id := id || substr(alphabet, floor(random() * length(alphabet) + 1)::integer, 1);
END LOOP;
RETURN id;
END;
$$ LANGUAGE plpgsql;
Teste:
SELECT generate_random_id(10); -- retorna um ID aleatório com 10 caracteres
Agora você pode criar uma tabela desta forma:
CREATE TABLE "public"."product" ("id" text default generate_random_id(6), "name" text NOT NULL, PRIMARY KEY ("id") , UNIQUE ("id"));
Tente inserir e fazer um select na tabela product para ver o id gerado automaticamente.
INSERT INTO product (name) VALUES ('paper');
Pronto.
15 de fevereiro de 2023 · Brazil