Olá, estou tentando acompanhar as aulas usando os exemplos para praticar, porém na aula onde usamos o SELECT para a atriuição de valor algo dá errado na minha QUERY que o resultado não insere o nome do cliente, tornando o resultado final NULL.
Segue a Transcição da query:
/*Inserção de dados usando o SELECT*/
SELECT * FROM clientes;
USE `insight_places`;
DROP procedure IF EXISTS `insight_places`.`novo_aluguel_26`;
;
DELIMITER $$
USE `insight_places`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `novo_aluguel_26`
(vAluguel VARCHAR(10), vClienteNome VARCHAR(150), vHospedagem VARCHAR(10), vDataInicio DATE, vDataFinal DATE,
vPrecoUnitario DECIMAL(10,2)) /*VprecoUnitario Só me pasas o valor unitário da diária e é independente do preço final, que deve ser calculado
declarando uma variável */
BEGIN
DECLARE vCliente VARCHAR (10);
DECLARE vdias INTEGER DEFAULT 0;
DECLARE vPrecoTotal DECIMAL(10,2);
DECLARE vMensagem VARCHAR (100);
DECLARE EXIT HANDLER FOR 1452 -- Caso na declaração da varo=iável aconteça algum erro 1452 será exibido essa mensagem
BEGIN
SET vMensagem = 'Problema de Chave Estrangeira associada a alguma entidade da base.';
SELECT vMensagem; -- Tem que lembrar de chamar a mensagem
END;
SET vdias = (SELECT DATEDIFF(vDataFinal, vDataInicio)); -- Calculo da quantidade de dias
SET vPrecoTotal = vDias * vPrecoUnitario; -- Calculo do preco total do aluguel após a declaração da variavel de dias
SELECT cliente_id INTO vCliente FROM clientes WHERE nome = vClienteNome; -- Ao executar essa colsuta o resultado do idCLiente será o vCliente (usar o INTO)
INSERT INTO alugueis VALUES (vAluguel, vCliente, vHospedagem, vDataInicio, vDataFinal, vPrecoTotal);
SET vMensagem = 'Aluguel incluido com sucesso';
SELECT vMensagem;
END$$
DELIMITER ;
CALL novo_aluguel_26('20', 'Murilo Melo','9','2024-08-26','2024-09-01',35);
SELECT * FROM alugueis WHERE aluguel_id = '19';
Onde eu estou errando, alguém poderia me ajudar por gentileza?