← hierarchy-data-closure-table

Corrent mispell

f5ae8c73f6e7fd2b83787339e2a104e9b97c5ea4 · developerworks · May 15, 2013 01:30

+22 · 1 file changed

  • sql/p_prefix_nodes_delete_nodes.sql +22 −0
diff --git a/sql/p_prefix_nodes_delete_nodes.sql b/sql/p_prefix_nodes_delete_nodes.sql
new file mode 100644
index 0000000..ce8350a
--- /dev/null
+++ b/sql/p_prefix_nodes_delete_nodes.sql
@@ -0,0 +1,22 @@
+DELIMITER $$
+
+USE `_category`$$
+
+DROP PROCEDURE IF EXISTS `p_prefix_nodes_delete_nodes_after_update`$$
+
+CREATE DEFINER = `root` @`localhost` PROCEDURE `p_prefix_nodes_delete_nodes_after_update` (
+    `node_id` INT UNSIGNED,
+    `deleted` INT UNSIGNED
+) COMMENT 'Delete a node and its descendant nodes(update is_deleted = 1)' 
+BEGIN
+    UPDATE 
+        `prefix_nodes` AS d 
+        JOIN `prefix_nodes_paths` AS p 
+            ON d.`id` = p.`descendant_id` 
+        JOIN `prefix_nodes_paths` AS crumbs 
+            ON crumbs.`descendant_id` = p.`descendant_id` SET d.`is_deleted` = deleted
+    WHERE p.`ancestor_id` = node_id;
+END $$
+
+DELIMITER ;
+