Вставить, обновить в одной процедуре в MySQL - PullRequest
1 голос
/ 06 января 2011

я создаю хранимую процедуру в моем sql, но получаю сообщение об ошибке, ошибка показывается как показано ниже, помогите мне.

версия сервера для правильного синтаксиса для использования рядом с '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 ;

Ответы [ 2 ]

1 голос
/ 06 января 2011

Вам не хватает ; в этой строке:

END IF

Должно быть:

END IF;

IF - это утверждение, и все утверждения должны заканчиваться точкой с запятой. Этот ничем не отличается. См. MySQL документацию для IF.

0 голосов
/ 06 января 2011
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;

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

Спасибо, Санил

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...