TG
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

Read in English
Como criar um ID aleatório customizado no Postgres

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.

Thiago Marinho

15 de fevereiro de 2023 · Brazil