par expérience interposée (j'ai jamais eu de problèmes, mais les histoires de mes collègues m'ont convaincu), je déconseille fortement d'utiliser la moindre fonctionnalité "cascade", que ce soit pour de l'update ou de l'insert.
en effet, une seconde d'inatention, et tu peux te retrouver avec une base de données complètement vierge, c'est pas terrible quand ça t'arrive en production.
autre souci, le rollback segment qui explose car trop de lignes sont liées.
ou la stack de récursivité car tu as trop de références dans tous les sens.
bref, le cascade est à la fois dangereux et peu fiable.
il vaut mieux y aller pépère tranquille, et faire à la main table par table en suivant le cheminement inverse du cascade.
c'est long et chiant, mais ça sauve la vie.
autre élément important je pense : généralement, à des fins d'historique, il vaut mieux "désactiver" un enregistrement plutôt que de le détruire. un petit champ "status" dans les tables principales, ça mange pas de pain, et ça rend de grands services.