暴猿 2022-08-26 09:07 采纳率: 0%
浏览 202

如何使用mysql触发器在删除A表数据时,B表也跟着删除一条

users表有字段 id,user_name,son_users表有id,user_id(user表主键),son_name;我想在删除user表一条记录时,son_user表关联删除一条记录
CREATE TRIGGER user_delete_view
AFTER DELETE ON users
FOR EACH ROW
BEGIN
delete from son_users where user_id=users.id;
END

保存触发器时总是报错
请问大家这种级联删除的触发器怎么写
  • 写回答

3条回答 默认 最新

  • 狂龙骄子 2022-08-26 09:41
    关注

    有2处调整下:

    • 在触发器中,不能直接使用原表名,如果是 引用名当前值,可以使用 OLD.字段名
    • END尾部要添加 半角分号; 以表示程序块结束
    • SELECT ... FROM 表名 建议指定别名,特别是在多表有相同字段名时,这个习惯很重要
    • 关键字 统一大写,常量名 统一大写,变量名 统一小写
    DELIMITER //
    CREATE TRIGGER user_delete_view
    AFTER DELETE ON users
    FOR EACH ROW
    BEGIN
        DELETE FROM son_users u where u.user_id = OLD.id;
    END;
    //
    DELIMITER ;
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月26日

悬赏问题

  • ¥15 ssh登录页面的问题
  • ¥60 渗透一个指定银行app,拿到客户信息,需要什么级别
  • ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
  • ¥15 jetson nano
  • ¥15 :app:debugCompileClasspath'.
  • ¥15 windows c++内嵌qt出现数据转换问题。
  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问
  • ¥15 用MATLAB汇总拟合图