Ao tentar realizar o exercício 06 (Excluindo Notas) do treinamento Comando DML: Manipulação de Dados com MySQL não consigo seguir com o exercício pois a tabela Notas ainda não foi carregada e está vazia.
A sugestão de comandos seria:
SELECT A.NUMERO FROM NOTAS A INNER JOIN CLIENTES B ON A.CPF = B.CPF WHERE B.IDADE <= 18
DELETE A FROM NOTAS A INNER JOIN CLIENTES B ON A.CPF = B.CPF WHERE B.IDADE <= 18
Mas como explicado acima, apenas retorna Null.
Então tentei utilizar o banco de dados sucos_vendas de duas formas:
DELETE X FROM (SELECT A.NUMERO, B.IDADE FROM sucos_vendas.notas_fiscais A INNER JOIN sucos_vendas.tabela_de_clientes B ON A.CPF = B.CPF) X WHERE B.IDADE <= 18;
Não acatado pelo erro 1288, X of the DELETE is not updatable.
E conforme acima, repliquei o comando na base sucos_vendas:
DELETE A FROM notas_fiscais A INNER JOIN tabela_de_clientes B ON A.CPF = B.CPF WHERE B.IDADE <= 18;
Desta vez o erro apresentado é o 1451
Cannot delete or update a parent row: a foreign key constraint fails (sucos_vendas
.itens_notas_fiscais
, CONSTRAINT itens_notas_fiscais_ibfk_2
FOREIGN KEY (NUMERO
) REFERENCES notas_fiscais
(NUMERO
)) 0.109 sec
Até onde entendi a chave estrangeira está impossibilitando o DELETE. Basta desfazer a chave estrangeira?
Muito obrigado!