DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`unary_delete`(v_node INT, v_delete bool) BEGIN /** * Borra un nodo. Se puede indicar si se quieren mantener los hijos. * En este caso los hijos pasan al padre del nodo. * Si no tiene padre, los hijos pasaran a ser padres. * * @v_node: Nodo que se quiere borrar. * @v_delete: Se indica si se borran los nodos. **/ DECLARE v_parent INT; SELECT parent INTO v_parent FROM unary WHERE id = v_node; IF(v_delete = FALSE) THEN UPDATE unary SET parent = v_parent WHERE parent = v_node; END IF; DELETE FROM unary WHERE id = v_node; END$$ DELIMITER ;