mysql - 如何构造 if exists 查询以产生错误消息
问题描述
我创建了一个用于将新列插入表中的过程,并且我做了一个IF
声明,基本上说如果输入的日期早于当前日期或未来至少 30 天,那么现在抛出一个错误我想创建一个IF
语句,如果其中一行存在,则只插入一个新列......表中只有三个可能的课程,所以程序要求提供课程代码和日期,有人可以推我当未输入三个代码之一时,如何构造我的 IF 语句以给出错误的正确方向?
不知道用什么关键词。
这是我IF
的日期检查声明:
IF (give_date < DATE_ADD(CURDATE(), INTERVAL 1 MONTH)) OR (give_date <= CURDATE()) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Please Enter A Date Over One Month';
ELSEIF (WEEKDAY(give_date) = 5 )THEN SET loop_date = DATE_ADD(give_date, INTERVAL 2 DAY);
ELSEIF (WEEKDAY(give_date) = 6 )THEN SET loop_date = DATE_ADD(give_date, INTERVAL 1 DAY);
ELSE SET loop_date = give_date;
END IF;
我正在尝试做这样的事情......
IF (new_code, EXISTS IN (module (course_code)) THEN
SIGNAL SQLSTATE '45000'SET MESSAGE_TEXT = 'Please Check Entered Course And Try Again';
END IF;
也试过这样做,但得到一个错误,说子查询返回多行......
IF give_code != ( SELECT course_code FROM module WHERE course_code = ('WSD' OR 'DDM' OR 'NSF'))THEN
SIGNAL SQLSTATE '45000'SET MESSAGE_TEXT = 'Please Check Entered Course And Try Again'; END IF;
解决方案
对你起作用吗?
IF ( SELECT count(*) FROM module WHERE course_code in ('WSD','DDM','NSF')) > 0
THEN
SIGNAL SQLSTATE '45000'SET MESSAGE_TEXT = 'Please Check Entered Course And Try Again';
END IF;
推荐阅读
- python - 该程序没有打印它是平局。我究竟做错了什么?
- octave - 使用 vpasolve 查找多个解决方案
- javascript - TypeError:无法读取未定义的属性“home_address”
- woocommerce - 我可以在哪个文件中找到 woocommerce 商店通知代码
- c++ - 在 C++ 函数中转换二维数组时出错
- php - Wordpress 如何过滤 URL 中的多个自定义 post_type
- discord.js - Discord.js 如何在嵌入中使用表情符号来显示用户的存在
- kubernetes - terraform 中“kubernetes apply -k”的等价物是什么?
- python - 为特定功能设置超时时间
- azure - Azure 数据工厂 ADF 数据管道将文件名包含在将数据复制到 sql 数据库中