51Testing软件测试论坛
标题:
mysql触发器无法执行动态拼接的sql语句
[打印本页]
作者:
测试积点老人
时间:
2020-7-31 15:52
标题:
mysql触发器无法执行动态拼接的sql语句
mysql触发器无法执行动态拼接的sql语句
CREATE <a href="mailto:DEFINER=`sa`@`%">DEFINER=`sa`@`%</a>` PROCEDURE `sp_insertodstasktable`(in dbName VARCHAR(64),in sourceTable VARCHAR(64),
in keyName VARCHAR(64), in id VARCHAR(64),in statusValue tinyint)
BEGIN
SET @tableName = f_getodstasktablename();
-- CALL sp_createodstasktable(@tableName);
PREPARE exec_sql FROM "INSERT INTO ods_task_20200730 values('db1','cms_channel','id','123456','0',NOW())";
EXECUTE exec_sql;
DEALLOCATE PREPARE exec_sql;
复制代码
直接上代码,上面的一句动态sql语句,由于insert的对象表,是动态创建的。执行上面的存储过程是可以的。
但是由于这个操作,是需要在具体的触发器下才能执行。触发器下运行报错:
Dynamic SQL is not allowed in stored function or trigger
复制代码
有什么好的解决办法吗?
作者:
海海豚
时间:
2020-8-3 10:36
把动态sql的执行操作,用存储过程包起来。
作者:
jingzizx
时间:
2020-8-3 13:08
参考楼上意见
作者:
qqq911
时间:
2020-8-3 13:50
再加上一层包装
作者:
郭小贱
时间:
2020-8-3 16:08
数据库是我的弱项,来学习。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2