触发器
若存在以下表
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
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改