Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

11 Faça como eu fiz - (RESOLUÇÂO)

Dentre os desafios, notou-se algumas necessidade e sua tarefa e solucionar essas demandas:

  1. gerenciar erros por identificadores de hospedagem duplicados.
  2. substituir as datas de início e término por uma data de início mais a duração, com a data final sendo calculada pela procedure.
  3. determinar o custo total pela multiplicação do número de dias pelo preço unitário.
USE `insight_places`;
DROP procedure IF EXISTS `insight_places`.`novoAluguel_6_Exercises`;

DELIMITER $$
USE `insight_places`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `novoAluguel_6_Exercises`
(vAluguel VARCHAR(10), vCliente VARCHAR(10), vHospedagem VARCHAR(10), vDataInicio DATE, vDataFinal DATE, vPrecoUnitario DECIMAL(10,2))
BEGIN
    DECLARE vDias INTEGER DEFAULT 0;
    DECLARE vPrecoTotal DECIMAL (10,2);
    DECLARE vMensagem VARCHAR (100);
    DECLARE EXIT HANDLER FOR 1062
    BEGIN
        SET vMensagem = 'Entrada duplicada de Chave Primaria';
        SELECT vMensagem;
    END;
    SET vDias = (SELECT datediff(vDataFinal, vDataInicio));
    SET vPrecoTotal = vDias * vPrecoUnitario;

    INSERT INTO alugueis VALUES (vAluguel, vCliente, vHospedagem, vDataInicio, vDataFinal, vPrecoTotal);
    SET vMensagem = 'Aluguel incluido na base com sucesso!';
    SELECT vMensagem;
END$$
DELIMITER ;
1 resposta
solução!

Olá, Douglas! Tudo bem?

Parabéns por concluir a atividade e obrigada por compartilhar com a comunidade, tenho certeza de que será uma inspiração para outras pessoas!

Como sugestão para outros projetos, sugiro especificar as colunas na instrução INSERT INTO para evitar problemas se a estrutura da tabela mudar ou se a ordem das colunas não corresponder aos valores fornecidos.

Desejo muito sucesso em sua trajetória! ✨✨

Fico à disposição!