2016-07-18 2 views
0

У меня есть процедура A, которая вызывает другую процедуру B. Я хочу знать, можно ли в B получить информацию об объекте, который его вызвал. Моя реальная цель состоит в том, чтобы подавить вывод B, если она вызывается из пункта А, в противном случае вывести его вывод, если он вызывается из-за пределов А.Получение информации о объекте вызывающего объекта для процедуры в MySQL

Спасибо, Pratik

+0

да, это вполне возможно. Сделайте снимок: p – Drew

+0

@ Нарисуйте все указатели на то, как мы можем это сделать? – PratikGandhi

+1

Have A передать параметр. Может быть, «от А». Другие делают «notFromA» – Drew

ответ

1

Pratik, я думаю, что ниже будет очень очевидно. Секция тестирования находится внизу. procB не будет отображать результат, если он вызван procA соответственно (по параметру). Если вызывается за пределами procA, то в соответствии с параметром он отобразит результирующий набор. Таким образом, вы можете построить свой строительный блок (ы) таким образом.

схемы:

drop table if exists flimFlam; 
create table flimFlam 
( id int auto_increment primary key, 
    thing varchar(100) not null, 
    calledBy varchar(100) not null, 
    theWhen datetime not null 
); 

Два прок:

drop procedure if exists procA; 
DELIMITER $$ 
create procedure procA() 
BEGIN 
    call procB('fromA'); 
    select 7 as seven; 
END$$ 
DELIMITER $$ 

drop procedure if exists procB; 
DELIMITER $$ 
create procedure procB(fromWhom varchar(20)) 
BEGIN 
    insert flimFlam(thing,calledBy,theWhen) select 'blah',fromWhom,now(); 
    IF fromWhom != 'fromA' THEN 
     select * from flimFlam; 
    END IF; 
END$$ 
DELIMITER $$ 

Тест:

-- truncate table flimFlam; 
call procB('Not from procA'); 
call procB('Not from procA'); 
call procA(); 
select * from flimFlam; 
+----+-------+----------------+---------------------+ 
| id | thing | calledBy  | theWhen    | 
+----+-------+----------------+---------------------+ 
| 1 | blah | Not from procA | 2016-07-18 00:07:21 | 
| 2 | blah | Not from procA | 2016-07-18 00:07:29 | 
| 3 | blah | fromA   | 2016-07-18 00:07:43 | 
+----+-------+----------------+---------------------+ 
Смежные вопросы