gpt4 book ai didi

mysql - 在 MySQL 中使用带有 PREPARE 的 LIMIT 变量时出现未声明的变量错误

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

我正在编写一个存储过程。我在将变量与 LIMIT 和准备好的语句结合使用时遇到了一些问题。 (见下面的代码)

该过程是正常创建的,但是当我调用它时出现一个错误,指出变量 a 未声明。有什么建议么?

delimiter //
drop procedure if exists shop1;
create procedure shop1()
begin
declare a varchar(255) default null;
declare counter int(4) default 0;
declare row_numbers int(4);
declare s varchar(255) default null;

select count(*) into row_numbers from salesmen;
WHILE counter< row_numbers+1 DO
set @s='select fio from salesmen into a Limit ? 1';
set @counter=counter;
prepare stmt from @s;
execute stmt using @counter;

SET counter=counter+1;
insert into warehouse.place (shop, fio) values (1, a);
END WHILE;

SET counter=0;
select count(*) into row_numbers from products;
WHILE counter< row_numbers+1 DO
SET counter=counter+1;
END WHILE;
end;
//

最佳答案

您可以使用 INSERT ... SELECT 来做同样的事情 -

INSERT INTO warehouse.place (shop, fio)
SELECT 1, fio FROM salesmen

关于mysql - 在 MySQL 中使用带有 PREPARE 的 LIMIT 变量时出现未声明的变量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064666/

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