ошибка хранимой процедуры mySQL - PullRequest
0 голосов
/ 24 февраля 2011

Я пытаюсь использовать оператор if в моей хранимой процедуре mySQL, но когда я пытаюсь создать его в рабочей среде mySQL, я получаю эту ошибку ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database'.'table' WHERE date=dateIn;.

Вот код:

DELIMITER $$

CREATE DEFINER=`rates_d_db` PROCEDURE `byDate`(in dateIn VARCHAR(255),in action VARCHAR(255))
BEGIN

IF action = "edit" THEN EDIT `database`.`table` WHERE date=dateIn;

ELSE SELECT * FROM `database`.`table` WHERE date=dateIn;

END IF;

END$$

Я новичок в хранимых процедурах, так что это, вероятно, очень грубая ошибка.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 16 июля 2016

Вот правильная версия вашей процедуры

DELIMITER $$

CREATE DEFINER=`rates_d_db` PROCEDURE `byDatee`(in dateIn VARCHAR(255),in action VARCHAR(255))
       BEGIN
           IF action = "edit" THEN 
                -- I used select below as i don't know what you want in edit either alter table or update table
               SELECT * FROM `database`.`table` WHERE date=dateIn;    
           ELSE
                SELECT * FROM `database`.`table` WHERE date=dateIn;
           END IF;
END $$
0 голосов
/ 24 февраля 2011

date - это зарезервированное слово в mySQL.Вам также придется обернуть это в кавычки.

...