开发者社区> 问答> 正文

相关mysql触发器功能的问题

一个树目录结构的数据库 module(id,name,fatherId)
我想写一个触发器,功能是:删除一个节点,同时删除该节点下的多有子节点。
问题:我下面的句子不能执行,报错。
`CREATE

TRIGGER DeleteModuleNode AFTER DELETE ON module
    FOR EACH ROW 
BEGIN
    IF((SELECT COUNT(id) FROM OLD) > 0) THEN
        DELETE FROM module WHERE fatherId IN (SELECT id FROM OLD);
    END IF;
END;`

此行报错:DELETE FROM module WHERE fatherId IN (SELECT id FROM OLD);
错误码: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6

展开
收起
落地花开啦 2016-02-12 16:30:22 2447 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    这个不能用触发器实现吧,mysql不允许触发器里面对自身表进行inset。
    update, delete,set好像可以

    2019-07-17 18:41:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像