MySQL - как исправить ошибку создания функции 1418 - PullRequest
0 голосов
/ 14 апреля 2020

Я использую mysqlWorkbench

Я следовал примеру работы, предоставленной моим наставником, и предложениям других пользователей по этому поводу, но теперь получаю ошибку 1418 при попытке создать функцию, как показано ниже:

Код ошибки: 1418. Эта функция не имеет ни DETERMINISTI C, ни NO SQL, ни READS SQL DATA в своем объявлении, и двоичное ведение журнала включено (вы могли бы хотите использовать менее безопасную переменную log_bin_trust_function_creators) 0,00069 se c

Функция выглядит следующим образом:

DELIMITER £
CREATE FUNCTION Calc(ReferenceNumber INTEGER)
RETURNS INTEGER

BEGIN 
DECLARE NUMCATS INTEGER;
    SELECT SUM(BOOKCAT.Ref = ReferenceNumber) INTO NUMCATS
    FROM CATTERY.BOOKCAT;
    RETURN NUMCATS;
END £
DELIMITER ;

select calc(7);

Дайте мне знать, что я делаю неправильно и как поправьте, спасибо.

1 Ответ

0 голосов
/ 14 апреля 2020

Сообщение об ошибке достаточно ясно. Вам нужно добавить одно из упомянутых ключевых слов в определение функции, чтобы сделать его действительным.

Обратите внимание:

DELIMITER £
CREATE FUNCTION Calc(ReferenceNumber INTEGER)
RETURNS INTEGER
DETERMINISTIC
BEGIN 
DECLARE NUMCATS INTEGER;
    SELECT SUM(BOOKCAT.Ref = ReferenceNumber) INTO NUMCATS
    FROM CATTERY.BOOKCAT;
    RETURN NUMCATS;
END £
DELIMITER ;

Демонстрация на DB Fiddle

...