Цель состоит в том, чтобы сделать его занятым в течение 'n' секунд, а затем выйти. Это последняя версия кода. Я пробовал напрямую date1 < date2
в while
, et c
delimiter $$
CREATE FUNCTION `DelayResponse`(pSeconds int) RETURNS varchar(1)
BEGIN
DECLARE x int;
DECLARE EndDateTime datetime ;
DECLARE CurrDateTime datetime ;
Set x = 0;
set EndDateTime = DATE_ADD(now(), INTERVAL pSeconds second);
set CurrDateTime = now();
WHILE x = 0 DO
-- expecting to set x to 1 in pSeconds but nope
if CurrDateTime > EndDateTime then
set x = 1;
end if;
SET CurrDateTime = now();
END WHILE;
RETURN 'X';
END$$
delimiter ;
select DelayResponse(5) X
Я не могу получить здесь l oop. Что мне не хватает?
Другая версия, которая не работает. Просто спины running...
без окончания
delimiter $$
CREATE FUNCTION `DelayResponse`(pSeconds int) RETURNS varchar(1)
BEGIN
DECLARE x int;
DECLARE EndDateTime datetime ;
Set x = 0;
set EndDateTime = DATE_ADD(now(), INTERVAL pSeconds second);
WHILE x <= 0 DO
set x = now() - EndDateTime;
END WHILE;
RETURN 'X';
END$$
delimiter ;