Dans votre instruction INSERT du déclencheur Library_Update, vous avez la ligne suivante :
WHERE subtree.`ancestor` = NEW.`iD`
mais vous ne mettez pas à jour le champ ID donc je ne pense pas que vous aurez une valeur NEW.iD. Cette ligne devrait-elle éventuellement utiliser OLD.iD à la place ?