Artigos mySQL

Criando uma procedure no mySQL para inserção de informações e criação de ID “GUID”

Fala Dev!

Hoje eu trago uma maneira de criar uma procedure em mySQL que ajuda a inserção do user e para o campo ID, geramos internamente um GUID.

Criação da tabela, atenção ao campo ID que ele tem que ser not null, um varchar(36) e deve ser chave primária e UNIQUE pois ele será único para cada user e marcando como chave primária otimizamos internamente o mySQL ao fazermos consultas:

CREATE TABLE `User` (
  `id` varchar(36) NOT NULL,
  `firstName` varchar(45) NOT NULL,
  `lastName` varchar(45) NOT NULL,
  `email` varchar(45) NOT NULL,
  `phone` varchar(45) NOT NULL,
  `cpf` varchar(45) NOT NULL,
  `password` varchar(45) NOT NULL,
  `token` varchar(45) DEFAULT NULL,
  `desconto` double DEFAULT NULL,
  `ValidadeToken` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=ascii;

E agora vem a procedure em que o pulo do gato está na função interna do mySQL uuid():

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_user`(
    IN firstName VARCHAR(255),
    IN lastName VARCHAR(255),
    IN email VARCHAR(255),
    IN phone VARCHAR(255),
    IN cpf VARCHAR(45),
    IN password VARCHAR(255),
    IN token VARCHAR(255),
    IN desconto DECIMAL(10,2),
    IN ValidadeToken DATETIME
)
BEGIN
    -- Generate a UUID for the `id` column
    SET @id = UUID();

    -- Insert the user data into the `User` table
    INSERT INTO User (id, firstName, lastName, email, phone, cpf, password, token, desconto, ValidadeToken)
    VALUES (@id, firstName, lastName, email, phone, cpf, password, token, desconto, ValidadeToken);

    -- Return the `id` of the newly inserted row
    SELECT @id;
END

A execução:

call MeuDB.insert_user('Lucas', 'Dalcolmo', 'contato@codeinsider.com.br', '(00) 9 000-0000', '000.000.000-00', 'suaPassword', null, null, null);

Por hoje é isso, e ai ? ajudou você? se sim, deixa um comentário ou like. Até a próxima.

Lucas Dalcolmo

About Author

Sou desenvolvedor de software a mais de 13 anos com experiência nacioanl e internacional. Já produzi softwares para grandes empresas no Brasil e também bancos em Portugal. Possuo as certificações microsoft AZ-900, DP-900, AI-900 e AZ-204 (azure developer associate). Sou fundador da Dallm Games Studio (@dallmgamesstudio) e fui mentor em vários eventos de desenvolvimento de jogos. Também fui mentor do NASA SPACE JAM 2024 na área de desenvolvimento de software.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Receba as últimas notícias por email

    Cadastre-se, receba nossas novidades em primeira mão por email, antes de todo mundo.

    Codeinsider @2025. Todos os direitos reservados.

    Desenvolvido por House Comunicação