[Resolvido]Erro ao deletar FOREIGN KEY

Boa tarde Amigos,
Estou tentado deletar um cliente do meu formulário, mas ao tentar deletar aparece a seguinte erro abaixo.

Cannot delete or update a parent row: a foreign key constraint fails (petnicao.tbagenda, CONSTRAINT tbagenda_ibfk_1 FOREIGN KEY (agenda_codcli) REFERENCES tbcliente (idcli))

Deu para entender que não consigo por causa da FOREIGN KEY.

Gostaria de saber como faço para deletar meu o cliente.

Sim, isso acontece quando você tenta deletar um elemento de uma tabela A QUAL outra(s) tabela(s) está(ão) vinculada(s).
Pelo que eu entendi, você está tentando deletar um cliente, ok? Ocorre que este cliente está ligado a uma tabela chamada tbagenda, coluna agenda_codcli.
Reveja isso, pois, se a tabela cliente não está com CASCADE para DELETE nas tabelas em que ela é referenciada, você realmente não conseguirá excluir esse registro.

Sei que é esse o motivo.
Gostaria de saber como posso fazer para resolver isso?
Se alguém puder ajudar agradeço.

Boa tarde,
Conseguir resolver ao criar minha tabela na minha chave estrangeira usei “on delete cascade”, conforme abaixo.

foreign key(agenda_codcli) references tbcliente(idcli) on delete cascade,

Cara, eu recomendaria vc deletar em ordem, primeiro os registros das tabelas dependentes de cliente e por último o registro da tabela cliente.

Acho o uso do cascade inadequado, porém é só minha opinião!

Compartilho do mesmo pensamento.

Mas qual o motivo que não devo fazer dessa maneira ?
E qual jeito de fazer vocês recomendam ?

A principal razão é sempre ter o controle total do que se está fazendo (afinal, cascade não serve só para delete).
Se você pesquisar, verá que, sim, há uma grande parcela de desenvolvedores que consideram isso (usar cascade, principalmente para delete) uma prática ruim.

Depende da regra de Negócio.

É permitido excluir cliente que tenha agenda? Se for, faça o que @Jonathan_Medeiros falou. Se não for, consulte antes se o cliente tem agenda e exiba mensagem de validação pro usuário avisando sobre isso.