2
respostas

Erro SP

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_inserir_venda`(vData DATE, max_itens INT,

max_quantidade INT)
BEGIN

DECLARE vCliente VARCHAR(11);

DECLARE vProduto VARCHAR(10);

DECLARE vVendedor VARCHAR(5);

DECLARE vQuantidade INT;

DECLARE vPreco FLOAT;

DECLARE vItens INT;

DECLARE vNumeroNota INT;

DECLARE vContador INT DEFAULT 1;

DECLARE vNumItensNota INT;

SELECT MAX(numero) + 1 INTO vNumeroNota from notas;

SET vCliente = f_cliente_aleatorio();

SET vVendedor = f_vendedor_aleatorio();

INSERT INTO notas (NUMERO,DATA_VENDA,CPF,MATRICULA, IMPOSTO)

VALUES (vNumeroNota, vData, vCliente, vVendedor, 0.18);

SET vItens = f_numero_aleatorio(1, max_itens);

WHILE vContador <= vItens

DO

   SET vProduto = f_produto_aleatorio();

   SELECT COUNT(*) INTO vNumItensNota FROM itens_notas

   WHERE NUMERO = vNumeroNota AND CODIGO = vProduto;

   IF vNumItensNota = 0 THEN

      SET vQuantidade = f_numero_aleatorio(10, max_quantidade);

      SELECT PRECO_LISTA INTO vPreco FROM produtos

      WHERE CODIGO = vProduto;

      INSERT INTO itens_notas (NUMERO, CODIGO,

      QUANTIDADE, PRECO) VALUES (vNumeroNota, vProduto, vQuantidade, vPreco);

   END IF;

   SET vContador = vContador + 1;

END WHILE;

END
call sp_inserir_venda("2023-08-29",5,10);

08:30:34 call sp_inserir_venda("2023-08-29",5,10) Error Code: 1146. Table 'sucos.A' doesn't exist 0.015 sec

Alguém pode me ajudar a identificar o erro?

2 respostas

Olá, Vagner! Como você está?

O erro 1146 do MySQL ocorre quando há uma tentativa de acesso a uma tabela que não existe.

Ele aponta que no seu código, você está fazendo referência a uma tabela chamada 'sucos.A', porém, de acordo com a mensagem de erro, essa tabela não está presente. No nosso curso, utilizamos tabelas com nomes como 'tabela_de_produtos' e 'tabela_de_vendedores', entre outras. É fundamental que o código associado ao procedimento esteja alinhado com os nomes das tabelas definidos. Por isso, peço gentilmente que faça uma verificação nesse sentido. Se você trocou algum nome da tabela é importante que essa alteração também esteja no código da procedure.

Espero ter ajudado.

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Estranho, o codigo está ai, como você pode observar não há qualquer mensão a essa tabela que o erro diz, e todas as funções que constam nessa sp foram testadas anteriormente e estão funcionado certinho.