Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não consegui fazer o exemplo da primeira aula

Meu código:

DELIMITER //
CREATE PROCEDURE `CLIENTE_NOVO_VELHO` (CPF VARCHAR(20))
BEGIN
    DECLARE RESULTADO VARCHAR(20);
    DECLARE DT_NASCIMENTO DATE;
    SELECT DATA_DE_NASCIMENTO INTO DT_NASCIMENTO FROM TABELA_DE_CLIENTES WHERE CPF = CPF;
    IF DT_NASCIMENTO < '2000-01-01' THEN
        SET RESULTADO = 'CLIENTE VELHO';
    ELSE
        SET RESULTADO = 'CLIENTE NOVO';
    END IF;
    SELECT RESULTADO;
END//
CALL CLIENTE_NOVO_VELHO('1471156710');

Quando executo aparece o seguinte erro: Error Code 1172 Result consisted of more than one row

2 respostas
solução!

Olá Jonas! Tudo bem?

Não manjo muito de SQL, mas pelo erro que você está recebendo, parece que a sua consulta está retornando mais de uma linha. Isso pode acontecer se existem múltiplos registros na tabela TABELA_DE_CLIENTES com o mesmo CPF.

Para resolver esse problema, você pode adicionar uma cláusula LIMIT 1 na sua consulta, para garantir que apenas um registro será retornado. Assim, a sua consulta ficaria assim:

SELECT DATA_DE_NASCIMENTO INTO DT_NASCIMENTO FROM TABELA_DE_CLIENTES WHERE CPF = CPF LIMIT 1;

Espero ter ajudado e bons estudos!

Funcionou mesmo amigo, muito obrigado!