O
delete
direto dos procs
table não parece ter um efeito imediato na sessão atual do MySQL. O flush é usado no MySQL para fazer o servidor recarregar as coisas (alterando os privilégios diretamente via update / delete e os
flush privileges
é provavelmente a melhor analogia). No entanto, não consegui encontrar nenhuma versão de flush
que afetaria os procs armazenados com base na documentação. Portanto, acho que não há como fazer a exclusão do proc armazenado final na sessão atual do MySQL. O perigo real com sua abordagem de exclusão direta é que ela depende de um recurso não documentado do MySQL. Esse recurso pode ser alterado sem aviso prévio em uma versão futura do MySQL, impossibilitando uma atualização. Além disso, sem realmente depurar o próprio MySQL, é muito difícil dizer se sua abordagem tem algum efeito colateral indesejado.
Por esses motivos, eu não recomendaria usar essa abordagem em um código de produção. Se for um exercício único, então você pode se safar.