31 lines
686 B
MySQL
31 lines
686 B
MySQL
|
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 ;
|