Продолжается мое блуждание в трех соснах
Код:
DELIMITER //
DROP procedure IF EXISTS UserExist //
CREATE procedure UserExist (IN UserName VARCHAR(50), out RetMsg int)
BEGIN
SELECT id INTO RetMsg FROM Tab WHERE user = UserName;
END;
//
DELIMITER ;
DELIMITER //
DROP procedure IF EXISTS SomeAuth //
CREATE PROCEDURE SomeAuth (UserName VarCHAR(50))
BEGIN
DECLARE pid int DEFAULT 0;
DECLARE pMSG int DEFAULT 0;
DECLARE pFile Mediumblob;
DECLARE IsUser VARCHAR(20);
set IsUser ='DefVal';
call UserExist(UserName, @pMSG);
if pMSG = 0 then
set pid = 0;
else
set pid = 1;
end iF;
select @pid, @pMSG ;
END //
DELIMITER ;
call SomeAuth('eefe490baa7c36fe1d073cc43fdcabf8');
Результат
и сразу куча вопросов
Почему Pid null, если Default 0?
Почему не сработал If? С примерами из инета я отличий не вижу
Код:
mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IFELSE(IN S_Subject Varchar(20), OUT S_Course varchar(50))
-> BEGIN
-> DECLARE Sub Varchar(20);
-> SELECT Subject INTO SUB
-> FROM Student_info WHERE S_Subject = Subject;
-> IF Sub = 'Computers' THEN
-> SET S_Course = 'B.Tech(CSE)';
-> ELSE
-> SET S_Course = 'Subject Not in the table ';
-> END IF;
-> END //
Query OK, 0 rows affected (0.00 sec