Shopping cart

Subtotal $0.00

View cartCheckout

Building better devs

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

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

Email : 45

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts