【发布时间】:2018-11-07 21:29:52
【问题描述】:
我创建了一个触发器,它创建一个动态查询。并执行它我曾尝试过“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
这是触发器 这是我制作的功能 退货换货( 子串( SUBSTRING_INDEX(str , delim , pos) , CHAR_LENGTH( SUBSTRING_INDEX(str , delim , pos - 1) ) + 1 ) , 脱脂, '' )
【问题讨论】:
-
使用准备语句
-
你应该添加 split_string 函数(我认为这不起作用)
-
我有我自己做的添加功能
-
这行不通 动态 sql 在触发器或存储函数中是不允许的。
-
if 的选项是什么
标签: mysql sql database mysql-workbench database-trigger