2011-01-06 2 views
1

im создание хранимой процедуры в моем sql, но получение ошибки, ошибка показывает, как показано ниже, help me Error Descrption: вы обнаружили ошибку в вашем синтаксисе sql: ckeck руководство, соответствующее вашему MYSQLInsert, upadate in single Процедура в mysql

версия сервера обозревают корректного синтаксиса использовать вблизи 'END' в строке 13

DELIMITER $$ 
DROP PROCEDURE IF EXISTS myhealthcamp.area $$ 
CREATE PROCEDURE myhealthcamp.area 
(
    IN id INT, 
    IN ar VARCHAR(45) 
) 
BEGIN 
if exists (select area_id from area where area_id = id) 
Then 
    update area set areaname = ar where area_id=id; 
else 
    insert into area(area_id, areaname) values(id,ar); 
END IF 
END $$ 
DELIMITER ; 

ответ

0
DROP PROCEDURE IF EXISTS myhealthcamp.area $$ 
CREATE PROCEDURE myhealthcamp.area 
(
    IN id INT, 
    IN ar VARCHAR(45) 
) 
BEGIN 
if exists (select area_id from area where area_id = id) 
Then 
    update area set areaname = ar where area_id=id; 
else 
    insert into area(area_id, areaname) values(id,ar); 
END IF; 

точка с запятой отсутствует

Благодаря Sanil

1

Вы не нашли ; в этой строке:

END IF 

Оно должно быть:

END IF; 

IF это заявление и все заявления должны заканчиваться точкой с запятой. Это ничем не отличается. См. MySQL documentation for IF.

+0

спасибо, еще один doudbt i hve, как записывать возвращаемое значение как сообщение типа «Вставить успешно» или «Обновить успешно» в процедуре. – xcodemaddy

+0

@ xcodemaddy Ох, я бы не знал. Мои знания sql не * * * широко. Возможно, спросите это как еще один вопрос? Мне было бы интересно увидеть ответ. – marcog

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