这是Mysql一个创建触发器的代码
CREATE TRIGGER tr_opp AFTER DELETE 
ON tb_dept FOR EACH ROW
BEGIN
DELETE FROM tb_emp WHERE deptno = (SELECT deptno FROM DELETED)
END 
可是执行起来老是报下面的错
Query : create trigger tr_opp AFTER DELETE   on tb_dept for each row  begin  DELETE from tb_emp where deptno = (SELECT deptno FROM DELET...
Error Code : 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 'end' at line 5
Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000
这是什么原因啊?求大神们帮助

解决方案 »

  1.   

    DELIMITER // 
    CREATE TRIGGER tr_opp AFTER DELETE 
    ON user FOR EACH ROW
    BEGIN
    DELETE FROM user WHERE m_id = (SELECT m_id FROM user);
    END 
    //
    DELIMITER ; 
      

  2.   

    DELETE FROM tb_emp WHERE deptno =old.deptno 
      

  3.   

    CREATE TRIGGER tr_opp AFTER DELETE 
    ON tb_dept FOR EACH ROW
    DELETE FROM tb_emp WHERE deptno = old.deptno;
    MYSQL与SQL SERVER语法不同,建议碰到类似语句问题时参考一下MYSQL官方免费手册。
      

  4.   

    CREATE TRIGGER tr_opp after delete
    on tb_dept for each row
    delete from tb_emp where deptno=old.deptno;