头歌5.1.1触发器 第二关

创建了一个MySQL触发器,在UPDATEchoose表时,如果新成绩不在0到100之间,会触发SQLSTATE45000错误,返回用户友好错误信息,防止非法数据插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用mysql语句在choose表上添加个针对UPDATE事件的触发器,限制成绩字段的值大于等于0且小于等于100,如果不满足这一限制,则使用SIGNAL引I发错误条件并指定可读的错误消息。预期输出:ERROR 1644 (45000) at line 1: 188您所输入的分数必须是0-100 id student_id course_id choose_time score 3 201810101102 1001 2018-09-03 00:00:00 88 4 201810101102 1002 2018-09-01 00:00:00 88

下面是在choose表上添加一个针对UPDATE事件的触发器,限制成绩字段的值大于等于0且小于等于100,并使用SIGNAL引发错误条件并指定可读的错误消息。

use course;

 /****请在此编写代码,操作完毕之后点击评测******/

 /**********Begin**********/

DELIMITER $$

    CREATE TRIGGER fku BEFORE UPDATE ON choose FOR EACH ROW BEGIN

    IF (NEW.score < 0 or NEW.score > 100) THEN

        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '188您所输入的分数必须是0-100';

    END IF;

END$$

DELIMITER ;

 /**********End**********/



 

这个触发器在每次UPDATE操作执行前被触发,检查新的成绩值是否在0~100的范围内。如果不是,则使用SIGNAL引发SQLSTATE '45000'错误条件,并指定一条可读的错误消息。在客户端执行UPDATE操作时,会收到这个错误消息并回滚操作。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值