2015-02-13 4 views
0

Итак, ниже представлена ​​функция, которую я пишу (в MySQL), и я получаю синтаксическую ошибку на последней строке «RETURN» (RETURN d_count). Я уверен, что это простая вещь, но я не могу понять. Спасибо!Ошибка синтаксиса в функции create, MySQL

DELIMITER $$ 
CREATE FUNCTION dept_count (dept_name VARCHAR(20)) 
    RETURNS INT DETERMINISTIC 
    BEGIN 
    DECLARE d_count INT; 
    SELECT COUNT(*) into d_count 
    FROM instructor 
    WHERE instructor.dept_name=dept_name 
RETURN d_count; 
END $$ 
+3

Вам нужна точка с запятой betweeh запроса и 'RETURN'. – Barmar

+0

EVERYTIME! спасибо @Barmar вы ROCK! – beau8008

ответ

2

Вы должны отделить SELECT и RETURN точкой с запятой ;:

DELIMITER $$ 
CREATE FUNCTION dept_count (dept_name VARCHAR(20)) 
    RETURNS INT DETERMINISTIC 
    BEGIN 
    DECLARE d_count INT; 
    SELECT COUNT(*) into d_count 
    FROM instructor 
    WHERE instructor.dept_name=dept_name; 
    RETURN d_count; 
END $$ 
+0

поэтому, SELECT count (*) в d_count; и возвращает d_count; – beau8008

+0

'WHERE instructionor.dept_name = dept_name;', он отметил это для вас. Вы не ставите точки с запятой между утверждением, например 'SELECT ... FROM ... WHERE'. – DeDee

+0

Я вижу это сейчас, я думал, что он занимал другое место. извините, очень новый для sql, и я подумал, что было бы странно поставить полуточку в этом месте. – beau8008

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