如何使用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

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

有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 ;

参考这个就可以:
http://t.zoukankan.com/findumars-p-3092036.html


CREATE TRIGGER user_delete_view
BEFORE DELETE ON test_a
FOR EACH ROW
BEGIN
    DELETE FROM test_b where name=old.name;
END;

试了半天只有这个好使