Вы запрашиваете что-то аналогичное пакету отражения, чтобы verificaToken мог получить информацию о стеке вызовов.
Нет, в хранимых процедурах MySQL отсутствует информационная функция о стеке вызовов.
Единственное, что вы можете сделать:
- Передавать информацию в качестве аргументов в verificaToken каждый раз, когда вы ее вызываете.
- Задавать пользовательские переменные, которые могут быть прочитаны verificaToken. .
Здесь задокументированы пользовательские переменные: https://dev.mysql.com/doc/refman/8.0/en/user-variables.html
Пример:
mysql> delimiter ;;
mysql> create procedure myproc()
-> begin
-> set @mycaller='myproc';
-> call verificaToken();
-> end;;
mysql> create procedure verificaToken()
-> begin
-> select @mycaller;
-> end;;
mysql> delimiter ;
mysql> call myproc();
+-----------+
| @mycaller |
+-----------+
| myproc |
+-----------+
Возвращен набор результатов, полученный из verificaToken()
,С этой переменной в теле этой процедуры вы можете делать все, что захотите, например, записывать ее, как вы сказали. Я просто демонстрирую, что можно установить переменную в одной процедуре, и она автоматически отображается для любой другой процедуры, которую вы вызываете.
Эти переменные являются «глобальными» в том смысле, что любая процедура может их прочитать, но она ограничена вашим собственным сеансом MySQL, поэтому никакие параллельные клиенты не могут прочитать переменную.