Sei que a pergunta será grande, mas gostaria de informar que tentei verificar o problema e não consegui. Até aqui as funções e SP funcionam perfeitamente. Todas forma testadas. Depois criei a SP abaixo, como na aula
/* criando uma compra aleatoria
USE `sucos_vendas`;
DROP procedure IF EXISTS `p_inserir_venda`;
DELIMITER $$
USE `sucos_vendas`$$
CREATE PROCEDURE `p_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 vNumNota int;
declare vContador int default 1;
select max(numero) + 1 into vNumNota from notas_fiscais;
set vCliente = f_cliente_aleatorio();
set vVendedor = f_vendedor_aleatorio();
insert into notas_fiscais (cpf, matricula, data_venda, numero, imposto)
values (vCliente, vVendedor, vData, vNumNota, 0.18);
set vItens = f_numero_aleatorio (1, max_itens);
while vContador <= vItens
do
set vProduto = f_numero_aleatorio();
set vQuantidade = f_numero_aleatorio(10, max_quantidade);
select preco_de_lista into vPreco from tabela_de_produtos where CODIGO_DO_PRODUTO = vProduto;
insert into itens_notas_fiscais (numero, codigo_do_produto, quantidade, preco)
values (vNumNota, vProduto, vQuantidade, vPreco);
set vContador = vContador + 1;
end while;
END$$
DELIMITER ; */
Fiz o chamamento da SP como abaixo:
call p_inserir_venda (20190517, 3, 100);
O procedimento retornou o erro abaixo:
/Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (sucos_vendas
.notas_fiscais
, CONSTRAINT notas_fiscais_ibfk_1
FOREIGN KEY (MATRICULA
) REFERENCES tabela_de_vendedores
(MATRICULA
))/
Como pode perceber eu tenho uma formatação diferente do professor na SP, pensei que fosse algo neste sentido, apesar de estar utilizando a plataforma windows, assim, copiei a SP e criei a SP p_inserir_venda_1 () que retornou o mesmo erro.
Como pude perceber o erro diz que estou tentando inserir uma FK que não consta em uma das tabelas... todas as tabelas tem registros inseridos (não estão vazias)
Poderia me ajudar?