En principio lo que debes hacer es analizar la longitud de los campos para una mejor optimización de la base de datos.
CREATE TABLE IF NOT EXISTS `user` (
`user_id` INT(6) NOT NULL AUTO_INCREMENT,
`user_email` VARCHAR(360) NOT NULL,
`user_password` VARCHAR(32) NOT NULL,
`user_role_id` INT(2) NOT NULL,
PRIMARY KEY (`user_id`)
);
En tu procedimiento el SELECT está de más al momento de llamar la función MD5
DELIMITER $$
CREATE
PROCEDURE `prueba`.`sp_user_insert`(IN `sp_email` VARCHAR(360), IN `sp_password` VARCHAR(100), IN `sp_role` INT(2) )
BEGIN
DECLARE `sp_encrypted_password` VARCHAR(32);
SET `sp_encrypted_password` = MD5(`sp_password`);
INSERT INTO `user`( `user_email`, `user_password`, `user_role_id`) VALUES ( `sp_email`, `sp_encrypted_password`, `sp_role`);
END$$
DELIMITER ;
CALL `sp_user_insert`('0roch1@hakkesshu', 'Pas$w0rD', 1);
SELECT * FROM `user`;
Saludos