delimiter //
CREATE TRIGGER agregarMateriaCurso AFTER INSERT ON MateriasDoctorado
FOR EACH ROW
BEGIN
IF (SELECT troncal FROM Materias WHERE codigo=NEW.codigoMateria)=1
THEN
UPDATE CursoDoctorado SET cantidadMateriasTroncales=cantidadMateriasTroncales+1 WHERE codigo=NEW.codigoDoctorado;
ELSE
UPDATE CursoDoctorado SET cantidadMateriasEspecificas=cantidadMateriasEspecificas+1 WHERE codigo=NEW.codigoDoctorado;
END IF;
END;//
delimiter ;
public class Consulta {
public static String[] triggers = {
"delimiter // CREATE TRIGGER agregarMateriaCurso AFTER INSERT ON MateriasDoctorado FOR EACH ROW BEGIN IF (SELECT troncal FROM Materias WHERE codigo=NEW.codigoMateria)=1 THEN UPDATE CursoDoctorado SET cantidadMateriasTroncales=cantidadMateriasTroncales+1 WHERE codigo=NEW.codigoDoctorado; ELSE UPDATE CursoDoctorado SET cantidadMateriasEspecificas=cantidadMateriasEspecificas+1 WHERE codigo=NEW.codigoDoctorado; END IF; END;// delimiter ;", "delimiter // CREATE TRIGGER eliminarMateriaCurso AFTER DELETE ON MateriasDoctorado FOR EACH ROW BEGIN IF (SELECT troncal FROM Materias WHERE codigo=OLD.codigoMateria)=1 THEN UPDATE CursoDoctorado SET cantidadMateriasTroncales=cantidadMateriasTroncales-1 WHERE codigo=OLD.codigoDoctorado; ELSE UPDATE CursoDoctorado SET cantidadMateriasEspecificas=cantidadMateriasEspecificas-1 WHERE codigo=OLD.codigoDoctorado; END IF; END;// delimiter ; "
};
}
for(String sentencia:Consulta.triggers){
System.out.println(mysqli.update(sentencia));
}
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“分隔符 // CREATE TRIGGER agregarMateriaCurso AFTER INSERT ON MateriasDoctorad”附近使用正确的语法