2016-09-29 9 views
2
CREATE FUNCTION .CreateGroup(GroupName VARCHAR(50), GroupIcon TEXT, GroupDescription VARCHAR(130), GroupCreator INT) 
     RETURNS int(11) 
     DETERMINISTIC 
    BEGIN 
     DECLARE groupID INT; 
     INSERT INTO groups (name, icon, description) VALUES (GroupName, GroupIcon, GroupDescription); 
     SET groupID = LAST_INSERT_ID(); 
     INSERT INTO group_members VALUES (groupID, GroupCreator); 
     RETURN groupID; 
    END; 

Я получил вышеуказанную ошибку:# 1064 - У вас есть ошибка в синтаксисе SQL; Почини это?

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5

Как это исправить?

ответ

0

Пожалуйста, удалите . перед именем функции ...

CREATE FUNCTION .CreateGroup(GroupName VARCHAR(50), GroupIcon TEXT, 
GroupDescription VARCHAR(130), GroupCreator INT) 
1

При создании MySQL хранимой программы (например, процедура), содержащая точку с запятой, вам нужно изменить заявление разделитель в строку, которая не появляются в инструкции CREATE.

В качестве демонстрации:

-- change statement delimiter to string that doesn't appear in the statement 

DELIMITER $$ 

-- terminate the statement with the specified delimiter 

CREATE PROCEDURE ... 
BEGIN 
    DECLARE groupID INT; 
    ... 
END$$ 

-- then change the delimiter back to the default semicolon 

DELIMITER ; 
Смежные вопросы