MySQL过程错误使用Exec()中的动态列名称错误
我在exec()函数上的mySQL过程中遇到错误:
什么是错误原因?
CREATE PROCEDURE get_string_try(in_strlen int, in_id int)
BEGIN
set @var:='';
while(in_strlen>0)
do
set @var:=concat(@var,IFNULL(ELT(1+FLOOR(RAND() * 53), 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'),'kovendan'));
set in_strlen:=in_strlen-1;
set @ix :=1;
while (@ix < 4)
do
set @select_column_insert:= ELT(@ix, 'address','lastname','middlename');
#SET @DynamicQuery_1 = ('UPDATE students set ' + @select_column_insert +' = '+ @var +' where id = '+in_id);
#SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = Database() AND TABLE_NAME = 'students' AND column_name = 'middlename' INTO @select_column_insert;
EXEC('UPDATE students set ' + @select_column_insert +' = '+ @var +' where id = '+in_id);
set @ix = @ix+1;
end while;
end while;
END $$
delimiter ;
CALL get_string_try(6,7);
I am getting an error in MySQL procedure at EXEC () function:
What is the cause of error?
CREATE PROCEDURE get_string_try(in_strlen int, in_id int)
BEGIN
set @var:='';
while(in_strlen>0)
do
set @var:=concat(@var,IFNULL(ELT(1+FLOOR(RAND() * 53), 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'),'kovendan'));
set in_strlen:=in_strlen-1;
set @ix :=1;
while (@ix < 4)
do
set @select_column_insert:= ELT(@ix, 'address','lastname','middlename');
#SET @DynamicQuery_1 = ('UPDATE students set ' + @select_column_insert +' = '+ @var +' where id = '+in_id);
#SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = Database() AND TABLE_NAME = 'students' AND column_name = 'middlename' INTO @select_column_insert;
EXEC('UPDATE students set ' + @select_column_insert +' = '+ @var +' where id = '+in_id);
set @ix = @ix+1;
end while;
end while;
END $
delimiter ;
CALL get_string_try(6,7);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最后找到了解决方案。
请参阅下面:
And finally found the solution.
refer below: