mysql触发器 err 1064_MySQL触发器定义 - 1064错误

我建议的触发器:

#START TRIGGER

delimiter //

DECLARE msg VARCHAR(255);

CREATE TRIGGER passStandard_check BEFORE INSERT ON Module

FOR EACH ROW

BEGIN

IF NEW.passStandard < 0 || NEW.passStandard > 1 THEN

set msg = concat('Trigger Error: Pass Standard: ', cast(NEW.passStandard as char));

signal sqlstate '45000' set message_text = msg;

END

//

delimiter ;

#END TRIGGER

但是我收到以下错误:

错误代码:1064 . 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'DECLARE msg VARCHAR(255)附近使用正确的语法;在第1行插入Mod'之前创建TRIGGER passStandard_check

添加 END IF 没有任何区别 .

passStandard 设置为 INT NOT NULL .

编辑

我在 BEGIN 之后移动了 DECLARE 语句:

#START TRIGGER

delimiter //

CREATE TRIGGER passStandard_check BEFORE INSERT ON Module

FOR EACH ROW

BEGIN

DECLARE msg VARCHAR(255);

IF NEW.passStandard < 0 || NEW.passStandard > 1 THEN

set msg = concat('Trigger Error: Pass Standard: ', cast(NEW.passStandard as char));

signal sqlstate '45000' set message_text = msg;

END IF;

END

//

delimiter ;

#END TRIGGER

但我仍然得到这个错误:

错误代码:1064 . 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'sqlstate'45000'set message_text = msg附近使用正确的语法;万一;在第7行结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值