drop trigger  if exists tri_del_department ;
delimiter //
create trigger tri_del_department before delete
 on departmentbegin
  declare var_departmentID  varchar(10) ;
  select var_departmentID=departmentID from department for delete ;
  delete from employee where departmentID=var_departmentID ;
  
end ;
//下面这个错误:
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 'begin
  declare var_departmentID  varchar(10) ;
  select var_departmentID=depart' at line 3
(0 ms taken)

解决方案 »

  1.   

    select var_departmentID=departmentID from department for delete ;这句是什么意思?想实现什么功能。MYSQL中没有这种语法。另外也没看懂你想实现什么功能。
      

  2.   

    语法有错啊,mysql说明文档上这个例子可参考:
    CREATE TABLE test1(a1 INT);
    CREATE TABLE test2(a2 INT);
    CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
    CREATE TABLE test4(
      a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
      b4 INT DEFAULT 0
    );
     
    DELIMITER |
     
    CREATE TRIGGER testref BEFORE INSERT ON test1
      FOR EACH ROW BEGIN
        INSERT INTO test2 SET a2 = NEW.a1;
        DELETE FROM test3 WHERE a3 = NEW.a1;  
        UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
      END
    |
     
    DELIMITER ;
    建议先弄清楚语法、语义再尝试写