MySQL, установка переменной сеанса внутри процедуры имеет приоритет над выходным параметром - PullRequest
0 голосов
/ 22 января 2019

MySQL версия 8.0.13.Переменная сеанса, установленная внутри процедуры, против выходного параметра, связанного с переменной сеанса.Переменная сеанса используется для принятия параметра out, и процедура внутренне устанавливает эту же переменную сеанса.Переменная сеанса устанавливается перед настройкой выходного параметра.Когда закомментировано, я получаю ожидаемый ответ 12. Когда строки не закомментированы, я получаю 9. Мне любопытно, почему это происходит.

delimiter $$

drop procedure if exists foo $$

create procedure foo( IN x_in float , out x_out float)

BEGIN

-- select  @v_out := sqrt(81);

set x_out = sqrt(x_in);

END $$

delimiter ;

call foo( 144 , @v_out);

select @v_out;
...