MySQL中写存储过程用到连接字符串函数concat_ws()出错

sety_sql=concat_ws('','insert','into',tmp4data,'value','(',var1,var2,')');set@sql=y_s... set y_sql=concat_ws(' ','insert','into',tmp4data,'value','(',var1,var2,')');
set @sql=y_sql;
prepare stmt1 from @sql;
execute stmt1;
deallocate prepare stmt1;

希望通过concat_ws函数写出一个插入语句,预先创建了表tmp4data,现在希望将var1,var2插入表相应的列varable1,varable2中,可是系统报错:1054,unknown column tmp4data in field lists.

后来我把第一行改成:
set y_sql=concat_ws(' ','insert','into',tmp4data.varable1,tmp4data.varable2,'value','(',var1,var2,')');
则报错:1109,unknown table tmp4data in field lists.

究竟是什么原因,请指正,谢谢!
展开
 我来答
rob3
推荐于2017-09-25 · TA获得超过105个赞
知道小有建树答主
回答量:83
采纳率:100%
帮助的人:48.5万
展开全部
简单的方法是你在存储过程中打印SQL,
set y_sql=concat_ws(' ','insert','into',tmp4data,'value','(',var1,var2,')');
select y_sql;

看看y_sql合并生什么, 其次在动态SQL过程中, 你定义的tmp4data到底是变量还是表的名称,如果是名称就需要添加分号
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式