Создание функции в MySQL версиях с 5.7 по Java - PullRequest
0 голосов
/ 17 июня 2020

Это моя функция:

    query = "CREATE FUNCTION CheckSex(personID INT, G CHAR) " +
                "RETURNS BIT " +
                "BEGIN " +
                    "DECLARE Flag BIT; " +
                    "SET Flag = 1; " +
                    "If (G NOT IN (SELECT Sex FROM PERSONS WHERE ID = personID)) " +    
                    "THEN SET Flag = 0; " +
                    "RETURN Flag; " + 
                "END"; 
        pState = conn.prepareStatement(query);
        pState.executeUpdate();

Это код ошибки: проверьте руководство, соответствующее вашей MySQL версии сервера, чтобы найти правильный синтаксис рядом с '' в строке 1

Я попытался ввести его в командную строку mysql вручную и получил сообщение об ошибке после DECLARE Flag BIT ;, также я попытался изменить разделитель, который дал ошибку.

Я переключился на сейчас онлайн-компилятор, и эта функция отлично работает в MySql 2014 express, записанном следующим образом

CREATE FUNCTION CheckSex(@personID AS INT, @G as CHAR)
RETURNS BIT
AS
BEGIN
DECLARE @Flag BIT = 1 
If (@G NOT IN (SELECT Sex FROM PERSONS WHERE ID = @personID))   
    SET @Flag = 0
RETURN @FLAG 
END;

Спасибо за любые отзывы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...