1.表结构
DROP TABLE IF EXISTS `tree`;
CREATE TABLE `tree` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) DEFAULT NULL,
`pids` varchar(255) DEFAULT NULL,
`tname` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4;
2.添加时的触发器
DROP TRIGGER IF EXISTS `add_with_pids`;
CREATE TRIGGER `add_with_pids` BEFORE INSERT ON `tree`
FOR EACH ROW SET new.pids=concat(IFNULL((select pids from tree where id = new.pid),""),new.pid,",");
3.修改时的触发器
DROP TRIGGER IF EXISTS `update_with_pids`;
CREATE TRIGGER `update_with_pids` BEFORE UPDATE ON `tree`
FOR EACH ROW SET new.pids=concat(IFNULL((select pids from tree where id = new.pid),""),new.pid,",");
本文详细介绍了一种基于树形结构的数据表设计方法,并通过触发器实现节点路径的自动更新。具体包括创建表结构、添加及修改记录时的触发器设置。
1557

被折叠的 条评论
为什么被折叠?



