Моя проблема в том, что я пытаюсь создать процедуру, которая получает входные параметры и проверяет, существуют ли данные, чтобы можно было вставить их в ту или иную таблицу.Я пытался по-разному, и я не могу найти ошибку, которая появляется в синтаксисе объявления.
Пожалуйста, мне нужна помощь.
Тысяча благодарностей заранее.
/ * Далее я показываю код процедуры * /
DELIMITER //
CREATE PROCEDURE InsertMensaje(IN pNOMBRE varchar(50), IN pTLFN varchar(9), IN pEMAIL varchar(50), IN pASN varchar(15), IN pMSG varchar(500))
BEGIN
/*declare valiable*/
DECLARE vIDCLI int;
/*THESE OPTIONS I HAVE ALSO TESTED*/
/*SET vIDCLI = (select id_cliente from tb_cliente where email = pEMAIL);*/
/*select id_cliente into vIDCLI from tb_cliente where email = pEMAIL;*/
/* DECLARE vAUX varchar(50)*/
/* SET vAUX = (select email from tb_cliente where email = pEMAIL);*/
/* select email into vAUX from tb_cliente where email = pEMAIL; */
/* IF (vAUX <=> NULL) THEN */
/*check if the pEMAIL parameter exists*/
IF EXISTS (select id_cliente from tb_cliente where email = pEMAIL) THEN
/*retrieve the ID and assign it to the variable*/
select id_cliente into vIDCLI from tb_cliente where email = pEMAIL;
/*insert in BD menssage table*/
INSERT INTO `tb_msg`(`asn`, `msg`, `id_cli`) VALUES ('pASN','pMSG','vIDCLI');
ELSE
/*insert new cliente*/
INSERT INTO `tb_cliente`(`nombre`, `tlfn`, `email`)
VALUES ('pNOMBRE','pTLFN','pEMAIL');
/*recovernew IdCli*/
SET vIDCLI = (select id_cliente from tb_cliente where email = pEMAIL);
/*insert in message table*/
INSERT INTO `tb_msg`(`asn`, `msg`, `id_cli`) VALUES ('pASN','pMSG',vIDCLI);
END IF;
END; //
DELIMITER //
MySQL сказал:
1064 - что-то не так в его синтаксисе рядом с 'IF EXISTS (выберите id_clienteиз tb_cliente, где email = pEMAIL) THEN 'в строке 25