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.