2014-12-14 3 views
0

У меня есть запрос, который говорит MySql Workbench, возвращает ошибку пропущенной точки с запятой. Я смотрел здесь, и общая конспирация заключалась в том, что изменение делиминатора решит проблему из-за того, что встроенный в Workbench процесс. Однако, когда я изменяю разделитель на $$, синтаксическая ошибка просто перемещается из строки VALUES (p_IPAddress) в линию END. Ошибка по-прежнему не совпадает с точкой с запятой, даже если разделитель теперь равен $$.INSERT INTO MySql Ошибка синтаксиса SqlWorkbench

DELIMITER $$ 

USE woodsweb$$ 

CREATE PROCEDURE CreateNewSession 
(
    IN p_IPAddress VARCHAR(20) 
) 
BEGIN 
    INSERT INTO SessionLog (IPAddress) 
    VALUES (p_IPAddress); 

    SELECT last_inserted_id() 
END$$ 
+0

Nevermind. Я был настолько обернут проблемой разделителя, что никогда не понимал, что в SELECT last_inserted_id() не было точки с запятой; – wuski

ответ

0

Мне не хватало точки с запятой ДО формулировки КОНЕЦ.

DELIMITER $$ 

USE woodsweb$$ 

CREATE PROCEDURE CreateNewSession 
(
    IN p_IPAddress VARCHAR(20) 
) 
BEGIN 
    INSERT INTO SessionLog (IPAddress) 
    VALUES (p_IPAddress); 

    SELECT last_inserted_id(); 
END$$ 

Примечание добавленный ; после ВЫБОР last_inserted_id()