• 触发器,你是否在删除时出现500,有的删除成功,有的删除就出现500。


    原因:删除成功的是没有其它表对其的外键引用,所以才能顺利地删除。而触发器,就是当某个表进行insert delete update前或后开始执行,而具体是什么,那就要自己去写了。

    讲解:请看下面的1、2、3、

    DELIMITER $$   #1、替换结束标记为$$,没看到下面用到了$$
    
    CREATE
    TRIGGER `uplog`.`logIfDel` BEFORE DELETE
    ON LOG
    FOR EACH ROW BEGIN   #2、创建一个LOG(文章表)表触发器,当该表每一条记录被删除【delete】后【BEFORE】执行下面的3(这里有两条语句或说comment评论表与point_log点赞记录表都依赖文章表的log_id的作为其外键)
    
    
    DELETE FROM COMMENT WHERE log_id=old.log_id; #3、在触发器中会在内存中生成有两种表,old表与new表,old.log_id就是被删除的文章那条记录对应的log_id,然后删除评论表与点赞记录表中对应的记录,这样我们才能顺序得删除log文章表中的记录(因为去掉了其它表对其的外键引用)。
    DELETE FROM point_log WHERE log_id=old.log_id;
    
    
    END$$
    
    DELIMITER ;
  • 相关阅读:
    iOS开发之--将 "中文" 转化成 "拼音"
    iOS swift语言
    手势识别
    学习git
    iOS开发如何在外面拿到一个子控件的frame ????
    协议和代理的理解及使用
    iOS开发之----生成二维码
    组合数C(n,m)的四种求解方法
    求一个数的正数因子(模板)
    图论五:网络流
  • 原文地址:https://www.cnblogs.com/zjazn/p/14266068.html
Copyright © 2020-2023  润新知