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 |
+----+-------+----------------+---------------------+
да, это вполне возможно. Сделайте снимок: p – Drew
@ Нарисуйте все указатели на то, как мы можем это сделать? – PratikGandhi
Have A передать параметр. Может быть, «от А». Другие делают «notFromA» – Drew