gpt4 book ai didi

MySQL 过程中的全局用户定义变量

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

我想将 PROCEDURE 的输出存储到全局用户定义的 VAR 中,以便我可以在不同数据库上的其他 PROCEDURE 中使用此“列表”。

其次,如果在第二个 PROCEDURE 中使用 VAR,则应取消设置它,因为在下一次 CALL 时它将附加 or?

感谢您的回复!

BEGIN
SELECT `steamid` FROM `mybb_users` WHERE `steamid`!='';
END

SELECT 语句进入全局变量,这样我就可以在另一个过程中使用结果...

最佳答案

据我所知,MySQL 中的过程不能返回行集。

我将通过在第一个过程中创建临时表,然后在第二个过程中使用该临时表来解决这个问题。像这样的事情:

delimiter $$
create procedure procedure1()
begin
drop table if exists temp_table;
create temporary table temp_table
select steamid from mybb_users where steamid != '';
-- add the appropriate indexes here
-- alter table temp_table
-- add index ...
end $$
create procedure procedure2()
begin
-- Do whatever you want to do with temp_table
end $$
delimiter ;

记住:

  • 临时表仅对创建它的连接可见。
  • 如果连接关闭,临时表将被删除。
  • 临时表直接创建到 RAM(如果它们不是很大),因此读取速度非常快。
  • 每个连接都可以创建同名的临时表,因为每个连接都会有该临时表的“副本”。

关于MySQL 过程中的全局用户定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25413761/

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