gpt4 book ai didi

mysql - 我的第一个存储过程无法运行

转载 作者:行者123 更新时间:2023-11-29 10:52:02 26 4
gpt4 key购买 nike

这有效:

mysql> 从 1_um 中选择 user_id、meta_value,其中 meta_key='1_caps';

我想要的是:

插入1_um(user_id,meta_key,meta_value)值(user_id=$uid,meta_key='2_caps',meta_value=$mval);

但是我在 SP 的尝试中不断受到影响的零行。这是我所拥有的:

分隔符//

创建过程 import_um()

开始

declare done int default FALSE; 
declare $uid bigint(20) unsigned default 0;
declare $mval longtext default "";
declare curs cursor for select user_id, meta_value from 1_um where meta_key='1_caps';
declare continue handler for not found set done = TRUE;
open curs;
read_loop: LOOP
fetch curs into $uid,$mval;
insert into 1_um (user_id, meta_key, meta_value) values (user_id=$uid, meta_key='2_caps', meta_value=$mval);
if done then leave read_loop;
end if; end LOOP; close curs; END//

移动“如果完成则离开read_loop;结束如果;”直接在 fetch 语句下方(在 insert 语句上方)也没有效果。

似乎提取到变量,var2 不起作用,因为我尝试用 select concat('my var is', $uid); 替换插入语句;并且没有任何内容发送到 STDOUT。

表 1_um 包含四列:umid (auto inc)、user_id、meta_key、meta_value。我必须将它们全部选择到光标中吗?

最佳答案

为什么在代码中使用循环?只需使用 insert 。 。 。选择:

insert into 1_um (user_id, meta_key, meta_value)
select user_id, '2_caps', meta_value
from 1_um
where meta_key = '1_caps';

毫无疑问,您的问题的一部分是格式错误的 VALUES 子句(您有值的 bool 表达式,这似乎不正确)。您还应该学习如何正确使用VALUES。但对于这个问题,请使用正确的 SQL 构造。

关于mysql - 我的第一个存储过程无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43562153/

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