Узнайте синтаксическую ошибку в этой хранимой процедуре

0
DELIMITER //
CREATE PROCEDURE compare (x INT,  y INT) RETURNS INT
BEGIN
    DECLARE test INT;

    IF x > y 
        THEN SET test = 1;
    ELSEIF y > x
        THEN SET test = -1;
    ELSE SET test = 0;

    END IF;

    RETURN test;
END
//

Может ли кто-нибудь показать, что здесь ошибка? PhpMyAdmin говорит

#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 'INT BEGIN DECLARE test INT; IF x > y THEN SET test = 1; ELSEIF y >' at line 1
Теги:
stored-procedures

1 ответ

4

Вы должны CREATE FUNCTION, потому что процедуры ничего не могут вернуть, только функции могут.

  • 0
    Спасибо кучка человек
  • 0
    @Lukman. RE: процедуры не могут ничего вернуть, только функции могут ... С хранимыми процедурами MySQL это не совсем так. В MySQL вы можете объявить параметры IN и OUT в операторе объявления хранимой процедуры.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню