3
respostas

[Projeto] 01 - Atualizando a idade (SOLUÇÃO)

Crie uma Stored procedure que atualize a idade dos clientes.

Solução:

DELIMITER $$
USE sucos_vendas $$
CREATE PROCEDURE Calcula_Idade ()
BEGIN
UPDATE tabela_de_clientes SET IDADE = TIMESTAMPDIFF(YEAR, DATA_DE_NASCIMENTO, CURDATE());
END $$

DELIMITER ;

CALL Calcula_Idade;
3 respostas

Oi, Sarah! Tudo certo por aí?

Mandou super bem na criação da Stored procedure Calcula_Idade! Com esse exercício, você pôde praticar, por exemplo, como podemos atualizar registros de uma maneira muita mais prática!

Se surgirem dúvidas, lembre-se que você pode contar com o fórum.

Até mais!

Eu fiz exatamente do jeito que esta na aula, mas eu não estou conseguindo atualizar a tabela. ![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade ) Alguem ṕode me dar uma luz?

Oi, Yuri! Tudo bem?

Alguns fatores podem estar impedindo que a tabela de clientes seja atualizada com os novos valores, como problemas na criação da stored procedure, não utilização do comando call ou por não buscar os registros de tabela_de_clientes com SELECT.

Sendo assim, para termos êxito na atividade, teremos que:

1. Criar novamente a stored procedure atualizando_idade :

USE `sucos_vendas`;
DROP procedure IF EXISTS `atualizando_idade`;

DELIMITER $$
USE `sucos_vendas`$$
CREATE PROCEDURE `atualizando_idade`()
BEGIN
UPDATE tabela_de_clientes set idade = timestampdiff(year, tabela_de_clientes.data_de_nascimento, curdate());
END$$

DELIMITER ;

Além de deletarmos a stored procedure inicial, realizamos novamente toda a sequência de comandos que ela possuía, garantindo que tudo esteja correto durante a criação.

Para executar os comandos acima, você pode copiar todo o bloco de código e colá-lo em um novo arquivo. Selecione todo o conteúdo e clique no botão de raiozinho, o qual efetua a execução do script SQL.

2. Chamar a stored procedure com a cláusula CALL:

CALL atualizando_idade;

Quando utilizamos o comando CALL juntamente com uma stored procedure, fazemos com que ela seja executada e, consequentemente, todas as ações associadas a ela sejam feitas — como a atualização do campo idade de tabela_de_clientes.

3. Visualizar as mudanças:

SELECT * FROM TABELA_DE_CLIENTES;

A partir do comando SELECT e do uso do asterisco, afirmamos que desejamos buscar todos os registros da tabela de clientes. Dessa maneira, poderemos visualizar as idades já atualizadas.

Yuri, espero ter ajudado com o passo a passo acima. Caso o problema persista, sugiro que abra um novo tópico no fórum para podermos olhar mais de perto sua questão. Estarei aqui para solucionar isso juntos!

Abraços.