我已经创建了一个触发器,它是创建一个动态查询,并执行它我已经尝试了'execu q',但它不工作。如何运行/执行该动态查询。
BEGIN
DECLARE a INT Default 0 ;
DECLARE str VARCHAR(255);
DECLARE q VARCHAR(500);
SET q = 'insert into '+new.master_name+' values(';
simple_loop: LOOP
SET a=a+1;
SET str = SPLIT_STRING(new.remarks,"|",a);
SET q = CONCAT(q,str+',');
SET q = LEFT(q, LENGTH(q) - 1);
IF str='' THEN
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
SET q = CONCATE(q,');');
EXEC q
END
这是trigerr这是我用return替换的函数(substring(substring\u index(str,delim,pos),char\u length(substring\u index(str,delim,pos-1))+1),delim,')
3条答案
按热度按时间csga3l581#
我编写了一个存储过程来执行动态构造的sql语句。
用法
实施
zkure5ic2#
据我所知,为了执行它,你必须先用你的字符串做一个准备好的语句。所以下面的部分代码应该可以代替
EXEC q
:vjrehmav3#
使用prepare语句执行动态查询