Я создал процедуру, которую я использую для вставки новых столбцов в таблицу, и я сделал оператор 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;