java - mysql触发器麻烦 IF ELSE UPDATE

标签 java mysql if-statement triggers delimiter

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));
            }

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 'delimiter // CREATE TRIGGER agregarMateriaCurso AFTER INSERT ON MateriasDoctorad' at line 1

最佳答案

第一个问题是缺少单词开头,第二个问题是从 java 中插入触发器并解决了删除“分隔符//”。

关于java - mysql触发器麻烦 IF ELSE UPDATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013994/

相关文章:

java - 如何使用ASM重写visitMethod将两个类合并为一个类

mysql - 如何使用 null||d.AM_Answer 进行选择查询

MySQL - 仅在用户第一次时选择注册

mysql - 在 Windows 中查看数据导入/恢复 MySQL 的进度

if-statement - 使用 If、ElseIf、ElseIf 是否比使用 If、If、If 更好?

python - 如何简化代码以检查 pandas 中的范围

php - 尝试检查用户名是否输入 - PHP

java - 如何使用Optional.ofNullable和Stream

Java 正则表达式 : Which is faster: series of simple ones or one complex?

java - 几秒钟后,方法需要更长的时间来执行