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構文にエラーがあります。'delimiterの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください//1行目の「MAteriasDoctoradに挿入した後のトリガーagregarMateriaCurso」を作成します