MySQL Query - PullRequest
       7

MySQL Query

0 голосов
/ 17 марта 2009

Я новичок в синтаксисе MySQL.

Я создал процедуру и запустил ее, но она показывает некоторые синтаксические пробы, вы можете мне помочь?

Моя процедура такова:

**DELIMITER $$
CREATE PROCEDURE TestAdd(
    in mODE varchar(10),
    in Id int,
    in AttName varchar(10),
    in AttValues Varchar(10)
)
IF EXISTS (SELECT * FROM AttTable WHERE id=Id) THEN
    SET Mode='Modify'
ELSE 
    SET Mode='Add'
    Start Transaction
    BEGIN
        IF (mODE='Add') THEN
            insert into atttable values (Id, AttName, AttValue);
        ELSE (if Mode='Modify') then
            update AttTable set AttName=AttName, AttValue= AttValue where Id=Id;
        END IF 
    END
$$
Delimiter ;**

Где я не прав? Заранее спасибо.

1 Ответ

2 голосов
/ 24 апреля 2009

Вам нужно BEGIN сразу после списка параметров в начале и соответствующее END в конце процедуры:

create procedure TestAdd(blah...)
BEGIN
  ...

END$$

Ваш первый IF звонок отсутствует THEN и END IF:

if exists ( select * from AttTable where  id=Id) THEN
  set...
ELSE
  set...
END IF

Каждое из утверждений должно заканчиваться ;

set Mode='Modify';
set Mode='Add';
Start Transaction;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...