Foreign key set to cascading but fails to update - why?
It appears as if this is not permitted in innodb which I assume is the engine you are using. From  http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html:


  If ON UPDATE CASCADE or ON UPDATE SET NULL recurses to update the same table it has previously updated during the cascade, it acts like RESTRICT. This means that you cannot use self-referential ON UPDATE CASCADE or ON UPDATE SET NULL operations. This is to prevent infinite loops resulting from cascaded updates. A self-referential ON DELETE SET NULL, on the other hand, is possible, as is a self-referential ON DELETE CASCADE. Cascading operations may not be nested more than 15 levels deep.