SELECT * FROM reservas;
-- 1000 > 2;
-- '1000' < '2';
SELECT reserva_id, CAST(reserva_id AS UNSIGNED) FROM reservas;
SELECT MAX(reserva_id), MAX(CAST(reserva_id AS UNSIGNED)) FROM reservas;
SELECT CAST(MAX(CAST(reserva_id AS UNSIGNED)) + 1 AS CHAR)FROM reservas;
USE insight_places;
DROP PROCEDURE IF EXISTS insight_places.novoAluguel_44;
DELIMITER $$
USE insight_places $$
CREATE DEFINER=root@localhost PROCEDURE novoAluguel_44
(vClienteNome VARCHAR(150), vHospedagem VARCHAR(10), vDataInicio DATE,
vDias INTEGER, vPrecoUnitario DECIMAL(10,2))
BEGIN
DECLARE vAluguel VARCHAR(10);
DECLARE vCliente VARCHAR(10);
DECLARE vDataFinal DATE;
DECLARE vNumCliente INT;
DECLARE vPrecoTotal DECIMAL(10,2);
DECLARE vMensagem VARCHAR(200);
DECLARE EXIT HANDLER FOR 1452
BEGIN
SET vMensagem = 'Problema de chave estrangeira associado a alguma entidade da base.';
SELECT vMensagem;
END;
SET vNumCliente = (SELECT COUNT(*) FROM clientes WHERE nome = vClienteNome);
CASE
WHEN vNumCliente = 0 THEN
SET vMensagem = 'Este cliente não pode ser usado para incliuir no aluguel porque não existe.';
SELECT vMensagem;
WHEN vNumCliente = 1 THEN
SELECT CAST(MAX(CAST(reserva_id AS UNSIGNED)) + 1 AS CHAR)INTO vAluguel FROM reservas;
CALL calculaDataFinal_43(vDataInicio, vDataFinal, vDias);
SET vPrecoTotal = vDias * vPrecoUnitario;
SELECT cliente_id INTO vCliente FROM clientes WHERE nome = vClienteNome;
INSERT INTO reservas (reserva_id, cliente_id, hospedagem_id, data_inicio,
data_fim, preco_total)
VALUES (vAluguel, vCliente, vHospedagem, vDataInicio,
vDataFinal, vPrecoTotal);
SET vMensagem = 'Aluguel incluido na base com sucesso.';
SELECT vMensagem;
WHEN vNumCliente > 1 THEN
SET vMensagem = 'Este cliente não pode ser usado para incliuir no aluguel porque não existe.';
SELECT vMensagem;
-- Obtém o ID do cliente
SELECT cliente_id
INTO vCliente
FROM clientes
WHERE nome = vClienteNome;
END CASE;
END$$
DELIMITER ;
CALL novoAluguel_44('Lívia Fogaça', '8635', '2023-05-15', 5, 45);
0 41 09:54:05 CALL novoAluguel_44('Lívia Fogaça', '8635', '2023-05-15', 5, 45) Error Code: 2013. Lost connection to MySQL server during query 30.000 sec