2013-09-12 5 views
0

Я продолжаю получать ошибку при попытке создать хранимую процедуру. Я использую следующий SQL:Ошибка 1064 в базе данных MySQL 5

CREATE PROCEDURE sp_add_mailing_list_item 
(
    IN paramA VARCHAR(50) , 
    IN paramB VARCHAR(50) , 
    IN paramC VARCHAR(255) , 
    IN paramD DATE   , 
    IN paramE VARCHAR(255) , 
) 

BEGIN 

INSERT INTO MailingList 
    (
     firstName    , 
     lastName    , 
     email     , 
     dob     , 
     notes 
    ) 

VALUES 
    (
     paramA    , 
     paramB    , 
     paramC    , 
     paramD    , 
     paramE 
    ) 

END 

Я довольно хорошо разбирается в SQL (для MSSQL Server), но это просто ускользает меня. Любая помощь приветствуется. Я попытался использовать разделитель, но это вызывает все другие ошибки.

Спасибо.

+0

Попробуйте удалить лишнюю запятую на 'параме VARCHAR (255),' и добавить точку с запятой в конце 'VALUES' (до' END'): 'парам);' – Lamak

+0

Вы не ответили к моему комментарию, но делая то, что я сказал, работает на sqlfiddle: http://sqlfiddle.com/#!2/a7de8 – Lamak

+0

Извините, я действительно удалил эту дополнительную запятую из инструкции, та же ошибка появляется. –

ответ

2

у вас есть лишняя запятая здесь

IN paramE VARCHAR(255) , 

EDIT: попробуйте это.

DELIMITER $$ 

    DROP PROCEDURE IF EXISTS sp_add_mailing_list_item $$ 
    CREATE PROCEDURE sp_add_mailing_list_item 
(
    IN paramA VARCHAR(50) , 
    IN paramB VARCHAR(50) , 
    IN paramC VARCHAR(255) , 
    IN paramD DATE   , 
    IN paramE VARCHAR(255)  
) 
    BEGIN 
    INSERT INTO MailingList 
(
    firstName    , 
    lastName    , 
    email     , 
    dob     , 
    notes 
) 

    VALUES 
    (
    paramA    , 
    paramB    , 
    paramC    , 
    paramD    , 
    paramE 
) 
    END $$ 
    DELIMITER 
+0

Есть ли что-нибудь еще, поскольку я исправил это, теперь я получаю ту же ошибку. Когда мой PHP Admin показывает мне запрос, он не показывает конечный оператор. Благодарю. –

+0

какая ошибка вы получаете? –

+0

Ошибка # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего MySQL-сервера, для правильного синтаксиса для использования рядом с «DELIMITER $$ ПРОЦЕДУРА DROP IF EXISTS sp_add_mailing_list_item $$ CREA 'в строке 1 –