Eu particularmente sou contra esta opção.
Alterar as chaves de forma cascateada, é extremamente perigoso.
Em uma situação que passei em uma empresa deixa isso bem simples.
Digamos que todos os registros de uma determinada cidade (id=x) foram alterados para id=y, porém já existiam registros de id=y.
Traduzindo, nunca mais poderíamos saber quais os originais e quais os migrados. Como não queriam mudar para “y” e sim para “z”, tivemos que voltar backup de todas as tabelas envolvidas e fazer um trabalho de formiguinha para restaurar tudo.
É claro que agora existem ferramentas que facilitam este trabalho de recuperação, mas é algo que a maioria dos usuários e desenvolvedores não estão aptos a utilizar…