У меня есть следующая функция, и я могу создать ее в MySQL v5.7, но я не могу создать ее в MySQL 8 (8.0.13):
CREATE FUNCTION IsRoomAvailable(rid INT,fymd DATE,tymd DATE,bid INT)
RETURNS BOOL
READS SQL DATA
BEGIN
DECLARE bids INT;
SELECT COUNT(*) INTO bids
FROM bookings AS b
WHERE ((b.bstart<tymd AND b.bend>=fymd) OR (b.bstart<=fymd AND b.bend>tymd))
AND b.rid=rid
AND b.bid!=bid;
RETURN IF(bids>0,FALSE,TRUE);
END
Я получаю следующее сообщение об ошибке: «Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 5"
Интересно то, что у меня нет этой проблемы при создании ПРОЦЕДУРЫ, только при создании ФУНКЦИИ.