我尝试使用以下代码在 MySQL 中创建触发器:
CREATE TRIGGER t_b_l_tuteur
BEFORE INSERT ON tuteur FOR EACH ROW
BEGIN
DECLARE code_err_tut integer;
DECLARE nb integer :=0;
DECLARE vliberlleErr MSG_ERREUR.libelleErr%TYPE;
SELECT libelleErr INTO vlibellErr FROM MSG_ERREUR WHERE codeErr=code_err_tut;
SELECT COUNT(*) INTO nb FROM ETUDIANT e WHERE :NEW.idUser = e.idUser;
if(nb<>0) then
RAISE_APPLICATION_ERROR(CODE_ERR_TUTEUR, vlibelleErr);
end if;
END
我收到一条SQL错误:
1064 - 您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近&#39;&#39;在第4行&#34;
第4行是:&#34; DECLARE code_err_tut integer;
我该如何解决?
答案 0 :(得分:1)
您忘了更改分隔符,因此查询中的第一个;
(第4行)
终止整个触发器定义,使&#34;声明&#34;无效。
尝试
DELIMITER $$ // note this line
CREATE yada yada yada
end if;
END
DELIMITER ; // note this line