触发器
若存在以下表
Create table tblUser
(
UID char(4) primary key,
UName char(3) not null,
UBirthday date not null
)
请为此表设计触发器,tri_check, 检查写入数据的正确性
要求:1、当UName小于2个字符时,消息报错‘必须2个字符以上’
2、当UBirthday 日期大于当前日期,消息报错‘不能大于当前日期’
3、若以上都存在,消息叠加报错
关于#mysql#的问题:mysql触发器
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- honestman_ 2022-10-16 14:48关注
CREATE TRIGGER tri_check #创建触发器 before INSERT #和下面一起 on tbluser #和下面一起 for each ROW #在数据写入tbluser表之前,对于每一行语句都检查一遍 BEGIN if CHAR_LENGTH(new.uname)<2 and new.uBirthday>CURDATE() then set @msg='必须2个字符以上 不能大于当前日期'; SIGNAL SQLSTATE '45000' set message_text=@msg; #如果符合以上两个条件,报错输出设定好的语句 end if; if CHAR_LENGTH(new.uname)<2 then set @msg='必须2个字符以上'; SIGNAL SQLSTATE '45000' set message_text=@msg; #如果符合以上一个条件,报错输出设定好的语句 end if; if new.ubirthday>CURDATE() then set @ts='不能大于当前日期'; SIGNAL SQLSTATE '45000' set message_text=@ts; #如果符合以上一个条件,报错输出设定好的语句 end if; end
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Matlab插值拟合差分微分规划图论
- ¥15 keil5 target not created
- ¥15 C/C++数据与算法请教
- ¥15 怎么找志同道合的伙伴
- ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
- ¥50 爬虫预算充足,跪巨佬
- ¥15 滑块验证码拖动问题悬赏
- ¥15 Wanted but not invoked:Actually, there were zero interactions with this moc
- ¥20 怎么驱动tb6612
- ¥15 Arcgis 3D效果点要素