gpt4 book ai didi

mysql - 获取有关 MySQL 中过程的调用者对象的详细信息

转载 作者:行者123 更新时间:2023-11-29 11:24:45 24 4
gpt4 key购买 nike

我有一个过程 A 正在调用另一个过程 B。我想知道在 B 中是否可以获取有关调用它的对象的信息。我的真正目的是抑制 B 的输出(如果从 A 调用它),否则显示它的输出(如果从 A 外部调用它)。

谢谢,普拉蒂克

最佳答案

Pratik,我认为下面的内容会非常明显。测试部分位于底部。如果由 procA 相应地调用(通过参数),procB 将不会渲染结果集。如果在procA之外调用,根据参数,它会渲染结果集。因此您可以通过这种方式构建您的构建 block 。

架构:

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 |
+----+-------+----------------+---------------------+

关于mysql - 获取有关 MySQL 中过程的调用者对象的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38428188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com